AI API 接入知识库后检索结果总不相关怎么办?
AI API 接入知识库后,如果召回内容不相关,应检查文档切分、向量模型、元数据过滤、重排规则、证据句和人工抽样。
适用场景:知识库接上了,但答案像在猜
这篇适合把产品文档、售后手册、合同条款、内部制度、FAQ 或工单历史接入 AI API 的团队。常见问题是用户问 A,系统召回 B;回答看起来流畅,但引用不到原文;同一个问题换个说法就答偏;新增文档后旧答案仍然排在前面。永沃云枢在 https://ai.jn83.com 维护 AI API 接入经验时,会先检查检索链路,而不是直接调大模型温度或更换提示词。
很多人把这类问题称为“GPT 中转知识库不准”,更规范的说法是 AI 模型接口的检索增强和模型调用管理。问题可能出在切分、向量、元数据、重排、提示词、权限过滤或日志复核的任意一层。
操作步骤:从文档切分开始排查
第一步,检查文档切分。一个块太长会混入多个主题,太短又缺少上下文。建议按标题、段落、表格和业务对象切分,并保留来源文件、章节、更新时间、权限标签和版本号。
第二步,检查向量模型和索引版本。新增或更新文档后,要确认重新生成 embedding 并写入同一个索引版本。不要让旧向量和新文档混在一起,否则召回结果会长期漂移。
第三步,检查元数据过滤。用户权限、产品线、地区、语言、文档版本和有效期都可能影响答案。没有过滤时会召回不该看的文档;过滤过严时又会召回不到内容。
第四步,增加重排和证据句。初次向量召回可以取更多候选,再按标题匹配、关键词、更新时间和人工规则重排。最终给模型的上下文必须包含证据句,而不是只传文件名。
排错路径:用固定问题集看召回,不只看最终回答
准备 20 到 50 个真实问题,每个问题标注应该召回的文档和不能召回的文档。测试时先看 top 5 召回结果,再看模型回答。很多时候模型回答错,是因为第一步召回就错了。
日志里至少记录 query、召回文档 id、分数、过滤条件、重排结果、最终上下文和回答引用。涉及用户隐私时,只保留脱敏样本和文档 id,不要把整段敏感原文长期写入日志。
如果 top 1 不相关但 top 5 有正确结果,可以优化重排;如果 top 5 都不相关,要回到切分、向量模型或查询改写;如果召回正确但回答乱编,要强化证据句、拒答边界和输出格式。
常见问题/避坑:别只靠提示词兜底
第一个坑是只改提示词,忽略检索质量。第二个坑是文档更新后没有重建索引。第三个坑是没有版本字段,过期政策和新政策一起召回。第四个坑是没有拒答边界,召回不到内容时模型仍然编一个答案。
知识库问答还要处理权限问题。销售能看的资料、客服能看的资料、内部管理文档和公开帮助中心不应混在同一无过滤索引里。AI 自动化办公场景下,权限召回错误比回答不流畅更严重。
如果使用 Codex 协助排查,可以让它写固定问题集、抽样脚本和日志分析,但不要把未脱敏的客户资料直接贴给它。开发者 AI 调用的第一原则仍然是只传必要上下文。
检查清单:召回可解释,回答才可信
文档切分规则已记录;每个块有来源、章节、版本和权限元数据;索引版本可追踪;新增文档会重新生成向量;固定问题集覆盖高频场景;日志能看到召回和重排结果;回答必须带证据句;召回不到内容时能拒答;敏感字段已脱敏。
上线前不要只看演示问题,要用真实用户搜索词、错别字、简称和跨部门说法测试。知识库的难点不是答标准问题,而是用户用自己的话问。
验收结论也要分层写:召回命中率、引用正确率、拒答正确率和人工满意度分别记录。这样后续更换模型、调整 embedding 或修改切分规则时,才知道质量到底提升在哪一层。
FAQ:可以完全交给 Codex 或模型自动处理吗?
可以让 Codex 帮你收集文件、执行低风险检查、整理日志和生成初稿,但涉及生产配置、用户数据、金额、权限、正式发布和搜索提交时,仍要保留人工确认点。自动化的目标是减少重复操作,不是绕过验收。