Embeddings

使用 OpenAI 兼容的 Embeddings 接口,将文本转换为数值向量。向量通常用于语义搜索、RAG 召回、聚类和推荐系统。

POST https://getrouter.ai/v1/embeddings

最小请求

curl https://getrouter.ai/v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "统一 API 可以访问多种 AI 模型"
  }'

响应中的 data 数组包含向量,usage(如果可用)包含本次请求的用量信息。

Python

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://getrouter.ai/v1",
)

response = client.embeddings.create(
    model="MODEL_ID",
    input=[
        "统一 API 可以访问多种 AI 模型",
        "向量搜索可以检索语义相似的文本",
    ],
)

for item in response.data:
    print(item.index, len(item.embedding))

Node.js / TypeScript

import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://getrouter.ai/v1',
})

const response = await client.embeddings.create({
  model: 'MODEL_ID',
  input: [
    '统一 API 可以访问多种 AI 模型',
    '向量搜索可以检索语义相似的文本',
  ],
})

console.log(response.data.map((item) => item.embedding.length))

请求字段

字段说明
model必填,Embedding 模型 ID
input必填,可以是文本、文本数组或受支持的 token 输入
encoding_formatfloatbase64
dimensions对支持该参数的模型请求输出维度

批量输入

在模型和输入限制允许的情况下,可以在一次请求中提交多段文本。请保留响应项的 index,以便将向量准确映射回原始文本。

向量兼容性

同一个向量索引中不要混用不同模型 ID 或不同维度设置生成的向量。如果更换其中任一项,需要重新生成已有数据的向量。

Tip

在检索系统中,文档和用户查询应使用相同的模型、分词方式和预处理策略生成向量。

兼容路径

API 规范还提供了将模型放在路径中的 Embeddings 接口:

POST /v1/engines/{model}/embeddings

新项目优先使用 /v1/embeddings。只有在现有客户端明确要求 engine-style 路径时,才使用路径参数版本。

下一步