从分块和元数据开始设计索引
文档应按标题、段落或业务语义分块,并保留文档 ID、来源、权限、更新时间和块序号。块太大容易混合主题,块太小则可能缺少回答所需上下文。
不要只保存向量。保留原始文本、分块版本和模型标识,才能在策略或模型变化时重新生成索引。
- 稳定文档标识
- 可追踪分块版本
- 权限与来源元数据
- 原文和向量分离保存
批量请求并校验返回顺序
批量向量化可以减少网络往返,但每批大小应受请求体、模型限制和失败重试成本约束。保存结果时按输入索引关联文本,不能假设异步流程自然保持业务顺序。
模型名称应以模型广场实时列表为准。示例中的 your-embedding-model 是占位符,不应直接用于生产。
curl https://modbapi.com/v1/embeddings \
-H "Authorization: Bearer YOUR_MODB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"your-embedding-model","input":["第一段文本","第二段文本"]}'更换模型时需要重建索引
不同嵌入模型的维度和向量空间不同,新旧向量通常不能放在同一索引中直接比较。迁移时建立新索引、重新向量化,并使用固定查询集比较召回质量。
检索质量还取决于距离度量、候选数量、过滤条件和可选重排。最终回答错误时,应分别检查检索结果和生成阶段。
常见问题
关于Embedding API 向量嵌入与 RAG 接入的常见问题
Embedding 和聊天模型有什么区别?
Embedding 输出用于相似度计算的向量,聊天模型输出文本或结构化内容,两者用途不同。
更换嵌入模型后旧向量还能继续用吗?
通常不能直接混用,应使用新模型重新生成并建立独立索引。
分块越小检索越准确吗?
不一定。过小会丢失上下文,应使用真实问题集比较不同分块策略。