第20章:RAG进阶——切分、召回、重排与答案校验
1. 项目背景
业务场景
第12章搭建的基础RAG系统已经运行了一个月,技术知识库从500份文档增长到了3000份。但用户投诉开始增多:
- 维修工程师老张搜索"液压系统压力不稳定",系统返回的前三条结果是"轮胎气压检查"“润滑油压力”“水管压力测试”——全不相关。
- 客服小美问了"退换货的时效是多久",AI回答引用了"退换货政策(2023年版)",但实际上2024年政策已经更新,旧文档仍在知识库中。
- 最尴尬的是:CTO亲自测试——问"公司的AI战略是什么",AI回答道"根据公司章程第3条第2款…",把公司章程和AI战略完全搞混了。
产品经理评估后得出结论:“基础RAG的检索质量已经无法满足3000份文档的复杂场景。需要升级到进阶RAG。”
痛点
- 切分策略粗糙:固定500字符切分导致关键信息被"腰斩"——一个维修步骤的1-3步在chunkA,4-5步在chunkB,检索时匹配到chunkB但看不到前提步骤。
- 仅靠向量检索召回率低:搜索"E2027"这个精确代码,向量检索可能因为缺少足够的语义上下文而遗漏关键词完全匹配的文档。
- 靠前的chunk不一定最相关:向量相似度排第1的chunk可能是泛泛而谈"The E2027 error means…",真正含有维修步骤的chunk排在第3甚至更后面。
- 答案无法校验
