知识库文档过期、互相矛盾,RAG 怎么处理冲突信息?

第 1203 题 约 2 分钟读完

本文目录
  1. 面试怎么回答
  2. 冲突的来源
  3. 数据治理层面:从源头减少冲突
  4. 检索层面:优先返回权威和最新的
  5. 生成层面:让模型知道存在冲突
  6. 发现冲突

面试怎么回答

冲突来源主要是版本更新后旧版没下线、多个来源说法不一、局部例外和错误信息。治理层面,我会给每份文档补齐生效失效日期、版本、权威级别和适用范围,新版本入库时标记替代关系让旧版失效,定期提醒负责人确认,低质量来源不接入或降权。检索层面默认过滤失效文档,按权威级别和更新时间加权,同一文档只保留最新版本。生成层面给每个片段附上来源和日期,要求模型以最新正式文档为准并说明依据,无法判断时列出不同说法和来源,不要混合成一个答案。还可以从用户反馈和定期的矛盾扫描中发现冲突,推给文档负责人处理。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

知识库里有 2023 年版和 2025 年版的报销制度,两份都被检索到了,模型回答时混在一起,给出了一个既不是旧规定也不是新规定的答案。企业知识库里过期和矛盾的信息非常普遍,面试官问这题,想看你从数据治理和检索两个层面怎么处理。

冲突的来源

  • 版本更新:制度、产品文档更新后,旧版本没有下线;
  • 多个来源:同一件事在 Wiki、聊天记录、邮件、PPT 里各有说法;
  • 局部例外:总部规定和某个地区的特殊规定;
  • 错误信息:个人笔记、过时的讨论记录。

数据治理层面:从源头减少冲突

  1. 元数据要完整:每份文档记录生效日期、失效日期、版本号、权威级别(正式制度 > 官方文档 > Wiki > 讨论记录)、适用范围;
  2. 版本替代关系:新版本入库时标记它替代了哪个旧版本,旧版本自动标记为失效;
  3. 定期清理:长期未更新的文档提醒负责人确认是否仍然有效;
  4. 数据源分级:不是所有内容都应该进知识库,低质量来源要么不接入,要么降权。

检索层面:优先返回权威和最新的

  • 过滤:默认只检索有效的文档,失效文档排除(用户明确问历史版本时除外);
  • 排序加权:在相关性之外,按权威级别、更新时间加权;
  • 去重:同一文档的多个版本只保留最新的。

生成层面:让模型知道存在冲突

  • 每个片段附上来源、版本、日期、权威级别,交给模型;
  • 提示词要求:有冲突时以最新的正式文档为准,并说明依据;如果无法判断,就把不同说法和来源都列出来,而不是混合成一个答案;
  • 对于适用范围不同的规定(总部和地区),要求模型说明适用条件。

发现冲突

  • 用户反馈和低评分回答里,很多是因为冲突信息;
  • 可以定期用模型扫描同主题的文档,检测内容矛盾,推送给文档负责人处理。