上一题下一题

文档中包含过期和最新版本说明时,RAG 如何通过时间字段和优先级避免引用旧知识

进阶版
来源:baidu初级工程师元数据过滤检索结果去重与优先文档时效性排序RAG时间与版本管理
答案解析

在 RAG 里如果同一类文档同时存在过期版本和最新版本,我一般不会只依赖向量相似度,因为旧文档如果语义更接近问题,也可能被召回出来。比较稳妥的做法是把“时间”和“版本优先级”作为检索链路里的强约束或排序因子。

文档入库时,需要给每个 chunk 补充元数据,比如:

publish time:发布时间 effective time:生效时间 expire time:过期时间 version:版本号 status:是否有效,比如 active、deprecated、expired priority:优先级,比如官方最新文档优先级最高 doc type/source:来源类型,比如官方文档、历史公告、FAQ、用户手册等

检索时我会分几层处理。

第一层是过滤。比如用户问的是当前规则,就直接过滤掉 status=expired 或者 expire time < now 的文档,只在有效文档里做向量召回。如果业务场景允许查询历史版本,可以根据用户问题中的时间点做过滤,比如“2023 年的规则是什么”,那就按问题里的时间去匹配当

登录后查看完整内容