RAG的“排毒”指南:告别非知识内容的干扰,实现精准问答
1. 引言:知识库中的问题——非知识性内容
理想的RAG知识库应该由结构清晰、内容翔实的陈述性或描述性文本组成。然而,现实世界中的知识库来源复杂,可能包含各种“非知识性”内容,例如:
- 对话与问答记录:如客服聊天记录、论坛问答、FAQ页面中的问题部分。
- 导航性/功能性文本:如目录、索引、页眉页脚、版权声明、“点击这里”、“返回上一页”。
- 元数据与注释:如代码注释、文档修订历史、审阅者意见。
- 程序性或指令性文本:如操作指南中的命令、API调用示例、法律文书中的程序性条款。
- 主观性评论与情感表达:如产品评论、用户反馈中的个人感受。
- 不完整或无意义的片段:如格式解析错误导致的乱码、只有标题没有正文的条目。
当这些非知识性内容被索引后,它们就如同知识库中的“毒苹果”。由于它们在词汇上可能与用户查询高度相关,很容易在语义检索阶段被错误地召回,从而对RAG系统造成严重危害:
- 污染上下文:将无关或误导性信息喂给LLM。
- 生成错误答案&#x