向量嵌入
POST /v1/embeddings — 兼容 OpenAI 的文本向量接口
/v1/embeddings 兼容 OpenAI 格式,走跟对话相同的路由/计费流程——它有自己独立的限流器(跟 chat/completions 分开),embedding 流量不会跟对话流量抢 RPM/TPM 额度。
下面示例里的模型名是示例——开工前先查 GET /v1/models,确认有没有能力包含 embedding 的模型(见模型列表)。
示例
from openai import OpenAI
client = OpenAI(base_url="https://api.modelsite.ai/v1", api_key="ms_live_sk_xxx")
resp = client.embeddings.create(
model="bge-m3",
input=["The quick brown fox", "jumps over the lazy dog"],
)
for d in resp.data:
print(d.index, len(d.embedding))请求参数
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 必填 |
input | string | string[] | 必填——单条字符串或批量字符串数组 |
encoding_format | string | float(默认)或 base64 |
dimensions | integer | 期望的输出向量维度;具体模型是否支持视厂商而定 |
user | string | 终端用户标识(不透明字符串),厂商支持时会透传 |
部分需要的厂商专属字段也接受写在请求体顶层:task_type + title(Vertex AI——如 RETRIEVAL_QUERY / RETRIEVAL_DOCUMENT)、input_type(部分 Bedrock 多模态模型——text / image / video / audio)。其他厂商专属参数放 extra_body,跟 Chat Completions 的约定一致。
响应
{
"object": "list",
"model": "bge-m3",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.009, "…"] },
{ "object": "embedding", "index": 1, "embedding": [0.0041, 0.002, "…"] }
],
"usage": { "prompt_tokens": 12, "total_tokens": 12 }
}embedding 默认是浮点数组,encoding_format: "base64" 时是 base64 编码字符串。计费维度跟对话一样走 input_token。