先看结论

  • 先判类型再调参:错误分「没召回」「召回了但切片断了」「召回了旧版本」「模型幻觉」四类,改法完全不同。
  • 切片第一大坑是跨段切断:一句话被切成两半,检索到也没用。
  • 表格问答几乎都不是检索问题,是「整表塞进一个切片」的问题。
  • 旧版本不归档,模型会随机引用过期制度——这比答不出来更危险。
  • 验证方式:20 个真实问题 + 5 个负样本;只看能答对的题等于没测。

先分类,再改

把所有答错的问题过一遍,分成四类。不同类的改法完全不同,混在一起讨论只会得出「换工具」这种结论。

错误类型典型表现该改哪层
没召回问题里的词在文档里有,但搜不出来检索层(同义词、混合检索)或数据层(文档没有这个信息)
召回了但答不上引用的片段只有半句话、缺上下文加工层(切片)
召回了旧版本回答用的是上一版制度/价格数据层(版本归档)
模型幻觉知识库里没有,但它编了一个接入层(负样本训练、强制引用)

死法一:跨段切断

固定长度切片最容易把一句完整的话切成两半。用户问「报销上限是多少」,召回的片段是「……上限为 500 元」,但前面那句「差旅住宿」被切到上一个切片里了。模型拿到半句话,只能猜。

死法二:整表塞入

一份报价表 50 行,被切成一个 2000 字的切片。用户问「A 产品第三档价格」,模型要在 50 行里找一行——准确率可想而知。表格问答几乎都不是检索问题,是结构问题。

死法三:标题和层级丢失

切片只留正文,不留「这是哪份文件的第几节」。后果:模型不知道这句话的适用范围,也不知道来源。企业场景里,不能溯源的答案等于不能用。

死法四:旧版本被召回

同一份制度有 v1、v2、v3 三个文件,全部进了库。检索时三份都召回到,模型随机挑一个——很可能挑到旧的那份。这比答不出来更危险,因为用户会信。

死法五:重复与冲突

同一份内容有四个副本:邮件里的、群文件里的、网盘里的、文档库里的。改了一处,其余三处还是旧的。检索时命中哪一份全看运气。

四类文档的切片策略

文档类型切片方式关键要求
FAQ一问一答为一个切片答案要自成一体,不依赖上下文
长文档(制度/手册)按章节切,带标题路径每个切片保留章节号,便于引用
表格/报价单按行转文本或结构化表头必须进每个切片
合同/扫描件先 OCR,再按条款切条款边界清晰,保留页码

怎么验证改对了

不要用「感觉好多了」验收。用固定的 20 题(含 5 个负样本)跑前后对比:召回率、引用准确率、负样本拒答率。20 题自测表就是这个用途,测完你会知道该先改哪一层。

一句总结

先修数据和切片,再调检索和模型。顺序反了,就是花两周换工具、问题一个没少。

相关

选型分析知识库搭建:ima / 乐享 / Dify / RAGFlow / 本地 Markdown,8 个方案怎么选查看 →自测表20 个问题,测出你的知识库哪一层有病查看 →服务知识库诊断:先测 20 个问题,再决定要不要重做查看 →

发现错误或有补充?提交纠错;这个频道会持续更新。

最后更新:2026-11-01