Skip to content

2.3.4 什么样的数据不应该直接进入知识库? ​

先给结论:不是所有能拿到的数据,都应该直接进入知识库。

如果没有筛选,知识库很容易从“回答依据”变成“噪声仓库”。

第一类:明显无效或低价值的数据 ​

比如:

  • 只有几句话的空壳页面
  • 大量重复模板页
  • 几乎没有业务信息的宣传文案
  • 解析后只剩乱码的文档

这类内容即使放进去,也很难提升回答质量,反而会污染检索。

它们最常见的问题不是“完全没文字”,而是“有文本但没有回答价值”。很多团队会误以为“既然能抽出字,就先丢进去再说”,结果知识库里很快堆满大量不会帮忙回答问题的内容。

第二类:结构严重损坏的数据 ​

比如:

  • OCR 错误很多的扫描件
  • 表格行列关系已严重丢失的文件
  • 标题和正文完全错位的解析结果
  • 内容残缺不全、前后文断裂的文档

这类数据的问题不在“内容不重要”,而在“已经无法被系统正确理解”。

如果直接接入,后面很容易产生误导。

这类数据往往比“没有数据”更危险。因为系统会觉得自己有依据,用户也会看到看似有出处的回答,但底层依据其实已经失真了。

第三类:版本状态不明确的数据 ​

比如:

  • 草稿和正式版混在一起
  • 历史版本和现行版本没有区分
  • 过期制度仍被当成有效内容

这类数据最大的风险不是“检索不到”,而是“检索到了错误版本”。

尤其是在制度、政策、流程、定价、权限规则这类内容上,旧版本被误用的代价通常远高于“查不到”。查不到顶多是体验问题,查到过时规则往往会直接导致错误执行。

第四类:权限边界不清的数据 ​

比如:

  • 敏感文档没有标注可见范围
  • 不同租户的数据混在一个索引里
  • 内部专属资料没有访问控制字段

这类内容即使知识价值很高,也不应该在缺少权限设计时直接进入通用知识库。

因为对 RAG 来说,问题不是“用户会不会点开原文”,而是“系统会不会在生成答案时已经使用了这些内容”。只要权限边界还没准备好,高价值敏感数据就不应该先上线试试。

第五类:语义粒度完全不适合当前场景的数据 ​

例如:

  • 只有原始日志,没有任何摘要和字段提取
  • 只有数据库镜像,没有明确可问的主题
  • 一大堆截图,没有 OCR 和说明

这些数据不是永远不能用,而是通常不能“直接”进入当前 RAG 链路。

更合理的做法往往是先做:

  • 结构化提取
  • 清洗
  • 标签补充
  • 权限标注

之后再进入知识库。

也就是说,很多数据不是“不能用”,而是还没被加工成适合当前链路使用的形态。

第六类:对当前用户目标没有帮助的数据 ​

知识库不是资料总仓。它应该围绕明确任务服务。

如果某类数据虽然存在,但对用户常见问题几乎没有帮助,就不应该因为“反正拿得到”就盲目接入。

否则只会带来:

  • 索引膨胀
  • 检索干扰
  • 治理复杂度上升

知识库真正该收的,是“能提高回答质量的数据”,而不是“所有能接进来的数据”。如果你连“这类数据将回答哪些问题”都说不清,它通常就不该直接进主知识库。

更贴近实际的准入门槛 ​

如果你要决定一类数据能不能进知识库,比较实用的做法不是只看“有没有内容”,而是设一组最低准入门槛。

至少可以从下面 5 个维度判断:

1. 可读性 ​

系统能不能稳定读出正文,且读出的结果和原文差距不大?

如果 OCR 错误很多、乱码很多、结构错位很多,那它就还不具备准入条件。

2. 可理解性 ​

读出来的结果是不是还保留了基本语义关系?

比如:

  • 表格有没有表头和行列关系
  • 标题和正文有没有对应上
  • 图表有没有必要的文字说明

3. 可治理性 ​

它有没有清楚的来源、版本、时间、权限边界?

如果没有这些边界,即使正文质量不错,也不适合直接进入线上知识库。

4. 可检索性 ​

它进入知识库以后,真的能被合理召回吗?

有些数据虽然内容真实,但粒度太碎、太散、太依赖上下文,直接进索引以后仍然很难稳定命中。

5. 任务相关性 ​

它和当前系统要解决的问题真的相关吗?

如果系统是做客服知识问答,那大量品牌宣传页、活动海报、无结构日志通常都不该优先进入主知识库。

与其“直接入库”,很多时候更应该先进入待处理区 ​

现实系统里,不是只有“进知识库”和“彻底不用”两种状态。

很多数据更合理的状态其实是:

  • 先放到待清洗区
  • 先放到待结构化区
  • 先放到待标注权限和版本的区
  • 先放到人工抽检队列

也就是说,数据可以先被接收,但不要直接进入线上可检索集合。

这个思路很重要,因为它能避免团队陷入两个极端:

  • 要么什么都不敢接
  • 要么什么都先进线上,再靠回答效果慢慢发现问题

一个更现实的实施顺序 ​

如果你现在在做知识库建设,更稳的推进方式通常是:

  1. 先定义主知识库的准入标准。 明确什么样的数据才允许进入线上可检索集合。

  2. 再定义待处理区。 把质量不足、边界不清、结构不稳的数据先隔离起来。

  3. 对高价值但暂时不达标的数据做专项处理。 比如 OCR 修复、表格恢复、元数据补齐、权限标注、版本状态梳理。

  4. 只有达到最低标准后,再进入主知识库。

这样做的好处是:你不是把所有问题都压到检索阶段去兜底,而是在入库前就先把明显不适合的内容挡掉。

一个实用标准 ​

判断某类数据能不能直接进入知识库时,可以先问四个问题:

  1. 它有真实问答价值吗?
  2. 它现在的质量足够支撑检索吗?
  3. 它的版本和权限边界清楚吗?
  4. 它进入后会提升信噪比,还是拉低信噪比?

如果这四个问题里有几个答案都不理想,就不应该直接接入。

如果你想把这个标准再落细一点,可以直接拿来做一张准入检查表:

  • 这类数据是否有明确的用户问题会用到它
  • 解析结果是否已经足够接近原文
  • 是否有稳定来源和更新时间
  • 是否能区分当前有效版本和历史版本
  • 是否已经补齐权限、租户、角色等关键边界
  • 是否经过抽样检查,确认不是大面积噪声或乱码

这张检查表的意义不在于“形式化”,而在于防止团队因为“数据来都来了”就默认直接上线。

最容易犯的误区 ​

1. 认为“以后再清洗也可以” ​

很多数据一旦先进了线上索引,后面再补清洗、补权限、补版本,代价往往更高。因为你不只是要修数据本身,还要清理已有索引、缓存和错误回答痕迹。

2. 认为“高价值数据就应该优先接入” ​

恰恰相反,高价值但高风险的数据更应该先补治理,再决定是否进入线上知识库。价值越高,出错代价通常越大。

3. 认为“先接进去,模型会自己判断” ​

模型可以帮助总结和表达,但它不能替你补齐缺失的版本边界、权限边界和结构关系。原始数据不适合直接入库时,模型并不会自动把它变成可靠知识。

一句话总结 ​

不该直接进入知识库的数据,通常不是“完全没用”,而是“当前还不具备被系统安全、准确、稳定使用的条件”。对 RAG 来说,少而准,往往比多而乱更重要。