Embedding API 把文本转成向量,用于语义搜索、RAG、聚类、去重和推荐。它不生成文字,但几乎是所有知识库应用的底层能力。
本文讲清楚 Embedding API 怎么调用、怎么选模型、怎么做成本和效果评估。
说明:不同厂商的 embedding 模型接口和维度不同,本文以 OpenAI 兼容接口为例,具体以官方/站内文档为准。
一、Embedding 能做什么
- 语义搜索:按意思找内容,而不是关键词匹配。
- RAG:把文档切块、向量化,检索后再交给大模型回答。
- 聚类/分类:把相似文本分组。
- 去重:找重复/近似内容。
- 推荐:找相似文章/商品。
二、调用方式
OpenAI 兼容接口通常是:
POST /v1/embeddings
请求:
{
"model": "text-embedding-3-small",
"input": ["第一段文本", "第二段文本"]
}
返回每个文本的向量。模型名和维度以 模型价格 为准。
三、Python 示例
from openai import OpenAI
client = OpenAI(
api_key="sk-你的密钥",
base_url="https://ai.zhongshangqihang.com/v1",
)
resp = client.embeddings.create(
model="text-embedding-3-small",
input=["什么是 API 网关", "API Gateway 是什么"],
)
print(len(resp.data[0].embedding))
四、RAG 的基本流程
- 文档清洗、切块(按段落/标题)。
- 对每个块调用 Embedding。
- 存入向量数据库(pgvector、Milvus、Qdrant 等)。
- 用户提问时,把问题也向量化。
- 检索最相似的块。
- 把检索结果和问题一起交给大模型。
注意:切块大小、重叠、元数据(来源/权限)会直接影响效果。
五、怎么选模型
| 指标 | 要确认什么 |
|---|---|
| 维度 | 维度越高不一定越好,成本和存储也越高 |
| 语言 | 中文/多语言效果 |
| 最大输入 | 单块文本长度 |
| 价格 | 按 Token 计费 |
| 一致性 | 换模型后旧向量不能混用 |
| 部署 | 是否支持私有化/数据合规 |
六、成本怎么算
月成本 =
文档总 Token × 单价
+ 查询 Token × 单价
+ 向量存储/带宽
文档向量化通常是一次性成本,查询是持续成本。换模型要重新向量化全库,成本要提前算。
七、常见坑
- 换 embedding 模型后,新旧向量混用导致检索错乱。
- 切块太大,检索不精准;太小,丢上下文。
- 没有存来源/权限,回答无法追溯。
- 只做向量检索,不做关键词混合,召回不稳定。
- 忽略多语言效果。
常见问题
Embedding 和大模型有什么区别?
Embedding 输出向量,用于检索/聚类;大模型输出文本,用于生成/推理。
可以本地部署吗?
可以,开源 embedding 模型可私有化部署,但需要 GPU/运维。
一个 Key 能同时调 embedding 和聊天吗?
在网关里通常可以,模型在请求参数里指定。
下一步
需要统一入口、按量计费和多种模型,可以先 注册中商起航 AI 网关,小额测试 embedding 和聊天模型。模型和价格以 模型价格 为准。
相关阅读:
