向量嵌入(Embeddings)
概念
向量嵌入将文本转为高维向量(一串浮点数)。语义相近的文本对应的向量在空间中距离更近。这使得计算机能够「理解」文本的语义相似度,而非仅进行字面匹配。应用场景
- 语义检索:在知识库或文档集中搜索与用户问题语义相关的内容。
- 文本聚类与分类:根据语义对文本分组。
- 推荐系统:找到与用户兴趣相似的内容。
- RAG(检索增强生成):先检索相关文档,再将文档交给对话模型生成回答。
调用接口
使用/v1/embeddings 将文本转为向量。
| 参数 | 说明 |
|---|---|
model | 嵌入模型名称,如 text-embedding-3-small、bge-large-zh-v1.5 等 |
input | 单条文本或文本数组 |
encoding_format(可选) | float(默认)或 base64 |
响应
embedding 数组即为文本的向量表示,长度取决于模型(通常为几百至几千维)。
Python 示例(单条文本)
批量嵌入(多条文本)
计算相似度
获得两段文本的向量后,可通过余弦相似度判断语义相似性。余弦相似度范围为 -1 至 1,值越接近 1 表示越相似。重排序(Rerank)
概念
重排序模型接受一个查询(query)与多个候选文档(documents),对候选文档按与查询的相关度排序并返回评分。 重排序通常用于两阶段检索的第二阶段:先用向量检索召回候选文档,再用重排序模型精排,以提升相关度。调用接口
使用/v1/rerank(具体路径可能因供应商而异,以模型能力为准)。
| 参数 | 说明 |
|---|---|
model | 重排序模型名称 |
query | 用户查询 |
documents | 候选文档数组 |
top_n(可选) | 返回前 N 个最相关的文档 |
响应
relevance_score 为评分(值越大越相关)。
Python 示例
假设平台提供重排序能力(以实际 API 为准):典型 RAG 流程
RAG(Retrieval-Augmented Generation)结合检索与生成,是知识库问答的主流方案:- 离线:将知识库文档转为向量,存入向量数据库。
- 在线:用户提问 → 将问题转为向量 → 检索最相关的文档 → (可选)重排序精排 → 将文档与问题拼接成提示词 → 交给对话模型生成答案。
计费说明
- Embeddings:通常按输入 Token 数计费。
- Rerank:按文档数量、文档长度或调用次数计费,具体以模型定价为准。
注意事项
- 不同嵌入模型的向量维度与性能不同,应按任务选择。中文任务建议选用中文优化的模型。
- 嵌入模型通常有最大输入长度限制,超长文本需分段处理。
- 向量检索的效果受文档切分策略、嵌入模型质量及检索参数影响,需根据实际场景调优。
