POST
创建嵌入
POST /v1/embeddings — 获取文本向量表示
创建嵌入
获取给定文本的向量表示,可用于语义相似度计算、RAG 检索增强生成等场景。
POST
https://api000.com/v1/embeddings
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 必填 | 嵌入模型 ID,例如 text-embedding-3-small |
input |
string 或 array | 必填 | 要嵌入的文本或文本数组(最多 2048 个字符串) |
encoding_format |
string | 可选 | "float"(默认)或 "base64" |
dimensions |
integer | 可选 | 输出向量维度(仅 text-embedding-3 系列支持缩减) |
请求示例
cURL
curl https://api000.com/v1/embeddings \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "零度API 提供高性价比的 AI 服务"
}'
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api000.com/v1",
api_key="sk-xxxxxxxxxxxxxxxx"
)
# 单条文本嵌入
response = client.embeddings.create(
model="text-embedding-3-small",
input="零度API 提供高性价比的 AI 服务"
)
vector = response.data[0].embedding
print(f"向量维度: {len(vector)}") # 1536
# 批量嵌入
texts = ["苹果", "橘子", "汽车"]
response = client.embeddings.create(
model="text-embedding-3-small",
input=texts
)
vectors = [d.embedding for d in response.data]
Python — 计算余弦相似度
import numpy as np
from openai import OpenAI
client = OpenAI(base_url="https://api000.com/v1", api_key="sk-xxx")
def get_embedding(text):
r = client.embeddings.create(model="text-embedding-3-small", input=text)
return np.array(r.data[0].embedding)
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
query = get_embedding("人工智能")
doc1 = get_embedding("机器学习和深度学习")
doc2 = get_embedding("汽车驾驶技术")
print(f"与doc1相似度: {cosine_similarity(query, doc1):.4f}") # 高
print(f"与doc2相似度: {cosine_similarity(query, doc2):.4f}") # 低
响应示例
{
"object": "list",
"data": [
{
"object": "embedding",
"embedding": [0.002306, -0.009327, 0.015412, "...共1536个浮点数"],
"index": 0
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 12,
"total_tokens": 12
}
}
可用嵌入模型
| 模型 ID | 向量维度 | 特点 |
|---|---|---|
text-embedding-3-small |
1536 | 低成本,速度快 |
text-embedding-3-large |
3072 | 精度更高,适合生产环境 |
text-embedding-ada-002 |
1536 | 经典版本,兼容旧系统 |
bge-m3 |
1024 | 多语言,中文效果优秀 |
bge-large-zh-v1.5 |
1024 | 中文专项优化 |
在 RAG 中的应用
# 典型 RAG 流程
documents = [
"零度API 支持 OpenAI 兼容格式",
"可以通过 api000.com 访问所有服务",
"支持 GPT、Claude、Gemini 等多种模型",
]
# 1. 将知识库转为向量
doc_embeddings = [
get_embedding(doc) for doc in documents
]
# 2. 用户查询转为向量
query_embedding = get_embedding("如何访问零度API?")
# 3. 找到最相似的文档
similarities = [
cosine_similarity(query_embedding, doc_emb)
for doc_emb in doc_embeddings
]
best_idx = np.argmax(similarities)
print(f"最相关文档: {documents[best_idx]}")