外观
创建向量
POST
https://vip.zen-ai.top/v1/embeddings将文本转换为固定长度的浮点数向量。语义相近的文本向量距离更近,常用于知识库检索(RAG)、相似度计算、聚类和分类。
请求体
modelstring必填向量模型,如 text-embedding-3-small、text-embedding-3-large、bge-m3、qwen3-embedding-8b。
inputstring | array必填要向量化的文本,批量处理时传字符串数组。单条文本不能超过模型的最大 token 数。
dimensionsinteger输出向量维度,仅 text-embedding-3 系列等支持降维的模型可用。
encoding_formatstring默认 float向量编码格式。
可选值
floatbase64userstring终端用户标识。
响应
objectstring固定为 list。
dataarray与输入顺序对应的向量列表,每项包含 index、embedding(浮点数数组)、object(embedding)。
modelstring使用的模型。
usageobjectprompt_tokens、total_tokens。
请求示例
bash
curl https://vip.zen-ai.top/v1/embeddings \
-H "Authorization: Bearer $VIP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "今天天气真好,适合去公园散步。"
}'python
from openai import OpenAI
client = OpenAI(base_url="https://vip.zen-ai.top/v1", api_key="sk-xxxxxxxx")
resp = client.embeddings.create(
model="text-embedding-3-small",
input=["今天天气真好", "The weather is nice today"],
)
print(len(resp.data), len(resp.data[0].embedding))js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://vip.zen-ai.top/v1", apiKey: process.env.VIP_API_KEY });
const resp = await client.embeddings.create({
model: "text-embedding-3-small",
input: ["今天天气真好", "The weather is nice today"],
});
console.log(resp.data[0].embedding.length);响应示例
json
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [-0.0069, -0.0053, 0.0102, -0.0243, 0.0171]
}
],
"model": "text-embedding-3-small",
"usage": { "prompt_tokens": 14, "total_tokens": 14 }
}计算相似度
python
import math
def cosine(a, b):
dot = sum(x * y for x, y in zip(a, b))
return dot / (math.sqrt(sum(x * x for x in a)) * math.sqrt(sum(y * y for y in b)))
texts = ["猫喜欢吃鱼", "小猫爱吃鱼", "今天股市大涨"]
vecs = [d.embedding for d in client.embeddings.create(model="text-embedding-3-small", input=texts).data]
print(cosine(vecs[0], vecs[1])) # 较高
print(cosine(vecs[0], vecs[2])) # 较低