2026年AI知识库问答教程避坑清单:召回不准、答非所问的常见原因
2026年AI知识库问答教程避坑清单:召回不准、答非所问的常见原因
知识库问答上线后最常见的两类抱怨是:资料明明在库里,检索却召回不到;回答看起来通顺,却答的不是被问的那件事。问题往往不在大模型本身,而在链路细节。
本文按“文档切分 → 向量化 → 召回 → 重排 → 生成 → 评估”的顺序拆解常见原因,并给出一份可以逐项对照的避坑清单。 需要提醒的是,不同模型与接口的参数命名、默认值可能不同,实际以所用平台控制台显示的模型名称、接口地址和文档说明为准。
先给一个判断口径:如果答案是“没找到资料”,属于召回问题;如果“找到了资料但答偏了”,属于重排或生成问题;如果“单轮对、多轮错”,多半出在上下文拼接与历史管理上。把故障归类,才能避免盲目换模型。
一、召回不准的三个高频原因
1. 切分粒度与文档结构不匹配
把一份带标题层级的制度文档按固定字数硬切,最容易出现“上一条规定被切到上一块、例外条件被切到下一块”的情况。检索回来的片段本身语义不完整,后面的模型再强也只能靠猜。更稳妥的做法是优先按标题层级、条款、问答对切分,再对超长块做二次切分,并在每个块里保留标题路径与来源信息。
2. 只用向量,忽略关键词通道
用户问“工单编号规则是什么”,向量检索擅长语义相近,但对编号、型号、专有名词这类精确匹配并不总占优。把关键词检索与向量检索做混合,再做融合排序,通常比单一路径稳定,尤其是在术语密集的技术文档和规章类文档里。
3. 元数据缺失导致“串库”
同一套系统里往往有多个部门、多个版本的文档。如果入库时没有写入部门、版本、生效时间等元数据,检索阶段就无法过滤,旧版本被召回的概率会明显上升,用户看到的回答也可能来自已经作废的条款。
| 环节 | 典型症状 | 优先检查 |
|---|---|---|
| 文档切分 | 答案缺少前提条件、条款被截断 | 切分单位是否与标题层级一致,单块长度是否过大 |
| 向量化 | 明显同义的问题也召回不到 | 入库与查询是否使用同一个向量模型 |
| 召回 | 旧版本、其他部门内容被命中 | 是否使用元数据过滤,top-k 是否设置过大 |
| 重排 | 相关片段排在后面被截断掉 | 是否启用重排,截断是否按相关性排序 |
| 生成 | 有资料仍然答偏、编造数字 | 提示词是否限定“仅依据给定片段”,是否要求给出处 |
二、答非所问:生成阶段最常见的四个失误
1. 提示词没有约束回答范围
很多模板会把“请根据资料回答”写得含糊,模型就会把自身常识与检索片段混着用。更明确的做法是限定:只使用给定片段、片段不足时直接说明、涉及编号与金额必须照抄原文、输出中标注来源块编号。
2. 上下文塞得太满
把十几段片段一次性塞进上下文,看似信息更全,实际上会把真正的答案淹没在噪声里。片段数量、单块长度和总输入长度都需要有上限,并且优先保留重排后得分最高的几条。
3. 多轮历史没有裁剪
用户连续追问时,前几轮的片段会一直留在上下文里。如果后续问题换了主题,旧片段反而可能被误当成当前依据。常见做法是按轮次或按 token 预算裁剪历史,并在追问时重新触发检索。
4. 没有“答不出来”的兜底策略
缺少兜底时,模型会倾向于给一个看似合理的答案。对内部知识库来说,这比直接拒答更危险。建议明确写出兜底话术,并把兜底次数作为一项质量指标单独统计。
换模型应该是最后一步,而不是第一步。在切分、元数据、重排这三处没有排干净之前,换更大的模型通常只会把错误的回答说得更流畅。
三、工程侧:把模型接入的变量控制住
排查到模型这一层时,真正的麻烦往往不是提示词,而是“换了模型但没换配置”。例如把对话模型换成了别家的版本,向量模型却还是旧的;或者测试环境和线上环境的接口地址、模型名称不一致,导致两边结果对不上,排查方向直接跑偏。
对于需要同时试多个模型做 A/B 对比的团队,用一个统一入口可以减少切换成本。像 通联AI中转站 这类 AI 聚合平台,思路是用一个 Base URL 和一套 API Key 接入多种兼容协议,在控制台里切换模型名称即可做对比测试,向量模型、重排模型与对话模型也可以按任务分别选择。具体支持哪些模型、兼容哪些协议、计费如何计算,建议先到 通联官网 查看模型列表与接入文档,再决定把链路中的哪些环节放到同一条通道上。
四、上线前的验证清单
- 准备一份 30 到 50 条的黄金问题集,覆盖高频问题、边界问题,以及故意无法从知识库回答的问题。
- 为每条问题记录三项结果:是否召回正确片段、答案是否只基于该片段、是否出现编造内容。
- 分阶段替换变量:先固定切分与向量模型,只调 top-k 和重排;再固定检索部分,只调提示词。
- 每次改动后重跑同一套问题集,看整体趋势是否稳定,而不是只看一两个印象深刻的例子。
- 把“明确答不出来”也统计为合格结果,避免用兜底胡编换取表面的命中率。
五、常见问题速查
换更大的模型能解决召回问题吗?通常不能。召回发生在生成之前,模型再大也看不到没有被检索出来的资料。先把切分、过滤和重排做对,再考虑换模型。
top-k 设大一点更保险吗?不一定。过大的 top-k 会把弱相关片段一起塞进上下文,反而干扰生成,还会增加输入长度与调用成本。建议从较小的值起步,配合重排结果逐步调整。
怎么判断是提示词问题还是模型问题?用同一批召回片段,分别在两个模型和两版提示词上做对比测试。如果换提示词提升明显,问题在提示词;如果两个模型都答偏,问题多半出在片段质量或对问题的理解上。
知识库问答的效果,很大程度取决于向量模型、重排模型和对话模型是否选得合适。想按任务对比不同模型,可以注册后获取 API Key、查看 Base URL 与模型名称,先跑通一条最小的检索问答链路。