向量
/v1/embeddings:输入的写法、默认开着的缓存,以及批量向量化的建议。
httpPOST https://api.scirouter.cn/v1/embeddings把文本变成向量,用于检索、聚类、去重。请求与响应都是 OpenAI Embeddings 的形状。
请求
bashcurl https://api.scirouter.cn/v1/embeddings \
-H "Authorization: Bearer $SCIROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<向量模型的 id>",
"input": ["铁电材料的畴壁迁移", "钙钛矿太阳能电池的稳定性"]
}'Python:
pythonresp = client.embeddings.create(
model="<向量模型的 id>",
input=["铁电材料的畴壁迁移", "钙钛矿太阳能电池的稳定性"],
)
vectors = [item.embedding for item in resp.data]| 字段 | 必填 | 说明 |
|---|---|---|
model | 是 | 向量模型的 id,在模型中心或 /v1/models 里找 |
input | 是 | 一个字符串,或字符串数组(一次向量化多条) |
metadata / user | 否 | 归因标签,不转给上游,见「可观测性」 |
| 其他字段 | 否 | 原样转给上游(例如 dimensions、encoding_format,上游支持才生效) |
响应
json{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456, …] },
{ "object": "embedding", "index": 1, "embedding": [0.0789, 0.0012, …] }
],
"model": "<向量模型的 id>",
"usage": { "prompt_tokens": 24, "total_tokens": 24 },
"scirouter": { "request_id": "req_…", "cache": "miss", "…": "…" }
}data 按 index 与输入一一对应。按输入 token 计费。
默认走缓存
向量接口默认开着响应缓存:同样的模型、同样的输入必然得到同样的向量,第二次起直接返回、不计费。 批量向量化一批会重复出现的文本时,这能省下不少。
不想要时带请求头 X-SciRouter-Cache: disabled。细节见「缓存与幂等」。
批量的建议
- 一次传一个数组比逐条调用快,也更不容易撞上每分钟请求数的限频;
- 但单次请求体不能超过 4 MB(413
payload_too_large),上游对单批条数也常有上限—— 超长的列表请切成几百条一批; - 批量任务带上
Idempotency-Key,网络抖动后重试不会重复扣费(见「缓存与幂等」)。