向量化 - OpenAI Embeddings 协议

接口概述

把文本转成高维向量,用于语义检索、文本聚类、相似度计算、去重等场景。兼容 OpenAI Embeddings 格式。

接口地址

POST https://test.jw-info.com/v1/embeddings

请求头

请求头是否必填说明
Content-Type固定 application/json
AuthorizationBearer {API_KEY},也可用 x-api-key: {API_KEY}

请求参数

参数名类型是否必填默认值说明
modelstring-模型名称,见下方「可用模型」
inputstring / array-输入文本:字符串、字符串数组,或 Token ID 数组。每条不超过 8192 token
encoding_formatstringfloat返回向量的编码格式:float / base64
userstring-终端用户标识,仅用于用量追踪

input 的三种写法:

形式示例说明
单条文本"你好,世界"单条输入,返回一条向量
字符串数组["hello", "world"]批量输入,按顺序返回多条向量
Token ID 数组[1212, 345, 678]已分词的 token 列表

请求示例

最简请求:

{
  "model": "text-embedding-v4",
  "input": "你好,世界"
}

批量请求:

{
  "model": "text-embedding-v4",
  "input": [
    "人工智能是计算机科学的一个分支",
    "机器学习是实现人工智能的一种方法",
    "深度学习是机器学习的子集"
  ]
}

指定编码格式:

{
  "model": "text-embedding-v4",
  "input": "这是一段需要向量化的文本",
  "encoding_format": "float"
}
curl https://test.jw-info.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的密钥" \
  -d '{
    "model": "text-embedding-v4",
    "input": ["人工智能是计算机科学的一个分支", "机器学习是实现人工智能的一种方法"]
  }'

响应参数

字段类型说明
objectstring固定为 list
dataarray向量结果列表,与 input 顺序一一对应
data[].objectstring固定为 embedding
data[].indexinteger对应 input 中的索引(从 0 开始)
data[].embeddingarray向量:encoding_format=float 时为 float 数组,base64 时为字符串
modelstring实际使用的模型名称
usage.prompt_tokensinteger输入 token 数
usage.total_tokensinteger总 token 数

响应示例

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.0023, -0.0092, 0.0156],
      "index": 0
    }
  ],
  "model": "text-embedding-v4",
  "usage": { "prompt_tokens": 10, "total_tokens": 10 }
}

实际返回的是完整维度的 float 数组,上例只展示前 3 维。

用量与计费

  • 输入 token 计费,人民币计价(精确到 0.000001 元,无最低消费),单价见模型广场对应卡片。
  • 费用不进响应,到控制台「费用中心」查看明细。
  • 拿不到用量统计的极少数情况会按估算用量计费,并在明细里标「估」便于对账。

错误响应

情况说明
参数错误(缺 modelinput 类型不对)按「错误码」页返回;模型侧参数错误以 502 带上其原始错误正文
{
  "error": {
    "message": "model is required",
    "type": "invalid_request_error",
    "code": "invalid_request_error"
  }
}

完整状态码与处理方式见「错误码」页。

可用模型

模型 ID说明
text-embedding-v4通义千问文本向量 v4(1024 维)
text-embedding-v3通义千问文本向量 v3(1024 维)
bge-m3智源研究院多语言文本向量

更多向量模型见模型广场(筛选「文本向量」)。

代码示例(Python)

import requests

BASE = "https://test.jw-info.com"
API_KEY = "sk-你的密钥"

resp = requests.post(
    f"{BASE}/v1/embeddings",
    headers={"Content-Type": "application/json",
             "Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "text-embedding-v4",
        "input": [
            "人工智能是计算机科学的一个分支",
            "机器学习是实现人工智能的一种方法",
            "深度学习是机器学习的子集",
        ],
    },
    timeout=60,
)
result = resp.json()

if resp.status_code == 200:
    print("模型:", result["model"])
    print("向量维度:", len(result["data"][0]["embedding"]))
    print("用量:", result["usage"])
else:
    print("请求失败:", result.get("error") or result)

在模型广场查看支持「文本向量」的模型 →