06 知识库 RAG
学习目标
你将理解 Dify 知识库的作用,并学会排查“搜不到、答不准、乱引用”的问题。
RAG 是什么
RAG 可以粗略理解为:
- 用户提问。
- 系统从你的资料中检索相关片段。
- 模型根据这些片段生成回答。
它的目标不是让模型“记住”你的资料,而是在回答时把资料找出来,作为上下文交给模型。
知识库不是万能的
知识库效果差,常见原因不是 Dify 设置错,而是资料本身有问题:
- 文档过期。
- 标题混乱。
- 一个段落混了多个主题。
- PDF 解析质量差。
- 表格内容缺少上下文。
- 多份文档互相矛盾。
文档准备
上传前先整理:
- 删除无关页眉页脚。
- 给每个主题加标题。
- 拆分过长段落。
- 删除重复内容。
- 标注版本和适用范围。
- 把图片中的重要文字转成文本。
知识库描述
知识库描述会影响系统判断什么时候使用资料。描述要写边界。
差的描述:
text
产品资料好的描述:
text
本知识库包含 2026 年公开版产品帮助文档,覆盖账号注册、套餐价格、功能限制、发票、售后和常见故障。适合回答用户使用产品前后的操作问题。不包含内部政策、未来路线图和未公开折扣。检索参数
Top K
返回多少个候选片段。太低容易漏,太高容易混入噪声。
Score Threshold
最低相似度阈值。太高可能搜不到,太低可能召回无关内容。
Rerank
重排模型会对召回结果重新排序,通常能提升相关性,但会增加成本和延迟。
官方文档也提到,知识库层和应用层都有检索设置,可以看成连续两层过滤:知识库设置决定初始候选池,应用设置进一步重排或缩小范围。
测试方法
至少准备三类问题:
- 资料中有明确答案。
- 资料中没有答案。
- 需要综合多个段落。
记录:
- 是否召回正确片段。
- 回答是否基于片段。
- 是否编造资料外内容。
- 是否需要调整切分、阈值或 Prompt。
常见错误
- 只调模型,不整理文档。
- 知识库描述过短。
- 把内部资料和公开资料混在一起。
- 资料外问题没有拒答策略。
- Top K 和阈值乱调,没有记录对比结果。
本章交付物
- 一个小型 FAQ 知识库。
- 一份知识库描述。
- 15 个测试问题。
- 一张 RAG 调试记录表。