知识库文档过期、互相矛盾,RAG 怎么处理冲突信息?
面试怎么回答
冲突来源主要是版本更新后旧版没下线、多个来源说法不一、局部例外和错误信息。治理层面,我会给每份文档补齐生效失效日期、版本、权威级别和适用范围,新版本入库时标记替代关系让旧版失效,定期提醒负责人确认,低质量来源不接入或降权。检索层面默认过滤失效文档,按权威级别和更新时间加权,同一文档只保留最新版本。生成层面给每个片段附上来源和日期,要求模型以最新正式文档为准并说明依据,无法判断时列出不同说法和来源,不要混合成一个答案。还可以从用户反馈和定期的矛盾扫描中发现冲突,推给文档负责人处理。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
知识库里有 2023 年版和 2025 年版的报销制度,两份都被检索到了,模型回答时混在一起,给出了一个既不是旧规定也不是新规定的答案。企业知识库里过期和矛盾的信息非常普遍,面试官问这题,想看你从数据治理和检索两个层面怎么处理。
冲突的来源
- 版本更新:制度、产品文档更新后,旧版本没有下线;
- 多个来源:同一件事在 Wiki、聊天记录、邮件、PPT 里各有说法;
- 局部例外:总部规定和某个地区的特殊规定;
- 错误信息:个人笔记、过时的讨论记录。
数据治理层面:从源头减少冲突
- 元数据要完整:每份文档记录生效日期、失效日期、版本号、权威级别(正式制度 > 官方文档 > Wiki > 讨论记录)、适用范围;
- 版本替代关系:新版本入库时标记它替代了哪个旧版本,旧版本自动标记为失效;
- 定期清理:长期未更新的文档提醒负责人确认是否仍然有效;
- 数据源分级:不是所有内容都应该进知识库,低质量来源要么不接入,要么降权。
检索层面:优先返回权威和最新的
- 过滤:默认只检索有效的文档,失效文档排除(用户明确问历史版本时除外);
- 排序加权:在相关性之外,按权威级别、更新时间加权;
- 去重:同一文档的多个版本只保留最新的。
生成层面:让模型知道存在冲突
- 每个片段附上来源、版本、日期、权威级别,交给模型;
- 提示词要求:有冲突时以最新的正式文档为准,并说明依据;如果无法判断,就把不同说法和来源都列出来,而不是混合成一个答案;
- 对于适用范围不同的规定(总部和地区),要求模型说明适用条件。
发现冲突
- 用户反馈和低评分回答里,很多是因为冲突信息;
- 可以定期用模型扫描同主题的文档,检测内容矛盾,推送给文档负责人处理。