Skip to content

RAG 优化和排错

知识库搭好了,但 AI 回答不准?这篇告诉你哪里出了问题,怎么修。

RAG 的 7 个常见失败点

RAG 是一条流水线,任何一个环节出问题都会导致最终回答不好。

#失败点症状原因
1文档质量差AI 回答的信息过时或矛盾源文档没更新、有冲突内容
2切片不合理AI 回答断断续续、缺少上下文切片太小,一段话被切成两半
3Embedding 不好明明有答案但检索不到Embedding 模型对中文支持差
4检索不准返回的内容和问题不相关检索策略单一,只用向量检索
5返回太少AI 说"信息不足"Top K 设太小,或阈值设太高
6返回太多AI 回答啰嗦、包含无关信息Top K 设太大,噪音干扰
7提示词没约束AI 不看检索结果,自己编系统提示词没强调"只基于检索结果回答"

逐个击破

问题 1:文档质量 — 垃圾进垃圾出

这是最常见也最容易被忽视的问题。

修复方法:

做法具体操作
去重同一个问题如果在多个文档中有不同答案,只保留最新的
更新产品下架了就删掉,政策变了就更新
补充口语表达客户说"退钱",你的文档写"退款"——加上同义词映射
加元数据给每段内容标注来源、更新时间、适用范围

问题 2:切片策略 — 切得好是成功的一半

切片方式推荐场景参数建议
按标题切有明确标题结构的手册每个 H2 为一个切片
按段落切自然段落清晰的文章保持段落完整
按固定长度没有结构的纯文本300-500 字,重叠 50-100 字
按语义切内容跳跃性大需要平台支持(Dify、RAGFlow 支持)

重叠(Overlap)很重要:相邻切片之间重叠 50-100 字,可以避免关键信息被切断。

Anthropic 的发现

"给每个切片加上文档级别的上下文说明(Contextual Retrieval),检索失败率降低 67%。"

Anthropic: Contextual Retrieval

具体做法:在每个切片开头加上"这段内容来自 XX 文档的 XX 章节,主要讲 XX"——让 AI 更容易理解这段内容的背景。

问题 3:Embedding 模型选择

模型中文效果成本说明
通义 text-embedding-v3优秀约 ¥0.7/百万 Token阿里出品,中文最优选
智谱 embedding-3优秀按量付费国产,中文效果好
OpenAI text-embedding-3-small良好$0.02/百万 Token便宜,中文还行
OpenAI text-embedding-3-large良好$0.13/百万 Token贵,但维度高
BGE-M3(开源)优秀免费自部署,BAAI 出品

建议:中文场景优先用通义或 BGE-M3,不要用英文为主的模型。

问题 4:检索策略优化

只用向量检索(语义检索)是不够的。 推荐混合检索:

用户问题

├── 向量检索(语义相似度)→ 找到语义相关的内容
├── 关键词检索(BM25)→ 找到包含关键词的内容

合并 + 重排序(Reranking)

返回 Top K 个最相关的切片
检索方式优势劣势
纯向量检索理解语义,"退钱"能找到"退款"可能漏掉精确匹配
纯关键词检索精确匹配快不理解同义词
混合检索两者优势结合需要调权重
混合 + 重排序效果最好多一步 API 调用成本

Dify、RAGFlow 都支持混合检索,建议直接开启。

问题 5-6:Top K 调优

场景推荐 Top K说明
简单问答(产品参数、价格)2-3信息集中在一两段
复杂问题(退货流程、售后政策)4-6需要综合多段信息
开放式分析(市场趋势、竞品对比)6-10需要更多上下文

Score 阈值建议:0.3-0.5。太高会漏掉有用信息,太低会引入噪音。

问题 7:提示词优化

一个好的 RAG 系统提示词模板:

你是 XX 品牌的客服助手。

## 回答规则
1. 只基于下面的"参考信息"回答客户问题
2. 如果参考信息中没有相关内容,说"这个问题我需要确认后回复您"
3. 绝对不要编造信息
4. 回答要简洁,不超过 200 字
5. 如果需要列步骤,用数字编号

## 参考信息
{{context}}

## 客户问题
{{query}}

成本控制

成本构成

环节成本来源说明
建库Embedding API一次性,约 ¥2-5/万页文档
检索Embedding API每次查询都要把问题向量化
生成LLM API把检索结果 + 问题发给大模型
重排序Reranker API(可选)如果用了重排序模型

实际成本参考

场景知识库大小日查询量模型月成本估算
小型 FAQ50 页文档100 次/天通义千问(免费)¥0-10
中型客服500 页文档1,000 次/天Claude Haiku¥200-500
大型企业5,000 页文档10,000 次/天GPT-4o¥3,000-8,000

省钱三板斧

方法节省比例怎么做
模型路由40-60%简单 FAQ 用便宜模型,复杂问题用强模型
缓存20-40%相同问题直接返回缓存答案
精简上下文10-20%减少每次发给 LLM 的切片数量

评估你的 RAG 效果

三个核心指标

指标怎么测及格线
检索准确率返回的切片是否包含正确答案>80%
回答准确率AI 的最终回答是否正确>85%
幻觉率AI 编造了多少不在知识库里的信息<5%

简单测试方法

  1. 准备 30 个测试问题(知识库里有答案的 20 个 + 没有的 10 个)
  2. 逐个提问,记录:
    • 检索到的内容是否包含正确答案?
    • AI 的回答是否正确?
    • AI 是否在知识库之外编造了信息?
  3. 计算三个指标

持续优化循环

收集用户实际问题

分析回答质量(正确/错误/部分正确)

错误分析(是检索没找到?还是 AI 理解错了?)

针对性修复(补文档/调切片/改提示词)

重新测试

一句话总结

RAG 效果 80% 取决于文档质量,15% 取决于检索策略,5% 取决于模型。先把文档整理好,再想优化技术。

微信交流:592146145