Dify 知识库怎么搭?文档 RAG 5 步入门
Dify 知识库怎么用?这篇教你 5 步搭好 Dify RAG:从上传文档、分段策略、Embedding 选型,到接进应用、做检索调优,含真实参数建议
30 秒了解:Dify 知识库是什么
Dify 知识库(Knowledge Base)是 Dify 内置的 RAG(检索增强生成)模块,你把 PDF、Word、Excel、Markdown 等文档上传进去,Dify 会自动切片 → 做 Embedding 向量化 → 存进向量库;之后应用对话时,Dify 会先去检索最相关的片段,再把片段塞给 LLM 一起生成回答。
为什么要用 Dify 知识库?两点价值:
- 让大模型懂你的私有资料(公司文档、产品手册、内部 SOP)
- 减少模型幻觉——回答有出处可追溯,比纯 prompt 工程稳得多
这篇假设你已经看过 Dify 怎么用,会注册账号和创建应用。如果还不会,先去基础篇过一遍。
如果想理解 RAG 的底层原理,看 RAG 是什么。这篇只讲在 Dify 里怎么用。
准备工作
| 项目 | 要求 |
|---|---|
| Dify 账号 | 云版(推荐新手)或自部署(v0.10+) |
| Embedding 模型 API Key | OpenAI text-embedding-3、智谱 embedding-2、阿里 text-embedding-v3 任选一个 |
| 文档原料 | PDF / Word / Excel / Markdown / TXT 等,单文件云版 ≤ 15MB |
| 应用 | 一个已经建好的 Chatbot 或 Agent 应用 |
文档质量直接决定检索效果——杂乱无章的 PDF 比清晰结构的 Markdown 难用 3 倍。能整理就提前整理。
详细操作步骤(5 步)
第 1 步:创建知识库
进入 Dify 工作室 → 顶部导航 知识库 → 右上角 创建知识库。
- 命名:建议按主题命名,如「商品 FAQ」「内部 SOP」「2026 产品手册」
- 描述:写一句这个库是干啥用的,给 LLM 后面理解用途用
[此处放截图:知识库创建页]
第 2 步:上传文档(4 种方式)
Dify 支持 4 种上传方式:
| 方式 | 适用场景 |
|---|---|
| 本地文件 | 单次上传几个文件 |
| 同步自 Notion | 团队知识在 Notion 里 |
| 同步自网页 | 抓取公开 URL 的内容 |
| 通过 API | 自动化场景(如 CRM 数据每天同步) |
新手用本地文件就够。上传时建议每批 5-10 个文件,太多容易卡住或解析失败。
[此处放截图:知识库上传文件界面]
第 3 步:分段策略(核心,最影响效果)
上传后 Dify 会问你怎么切片。这一步选错,检索效果就废了一半,重点讲。
两种模式:
模式 1:自动分段(小白用这个)
- 按段落 + 长度自动切,默认每段 500 token,重叠 50 token
- 优点:零配置,5 秒搞定
- 缺点:对结构化文档(如 FAQ、产品手册)会切得很碎,丢上下文
模式 2:自定义分段
- 你指定分隔符(
\n\n、---、###) - 你指定每段最大长度(建议 300-800 token)
- 你指定重叠长度(建议每段长度的 10-15%)
- 可以开 父子分段:父段供检索匹配,子段供精确召回
3 类文档的推荐配置:
| 文档类型 | 推荐模式 | 分段长度 | 重叠 |
|---|---|---|---|
| FAQ 文档 | 自定义,按 Q&A 切 | 400 token | 50 token |
| 产品手册 | 自定义,按 ## 标题切 | 600 token | 80 token |
| 长篇论文/合同 | 自动分段 | 500 token | 50 token |
对中文文档,token 数大致按字数除以 1.5 估算,500 token 约 330 个中文字。
第 4 步:选 Embedding 模型 + 索引模式
下一步选 Embedding 模型 和 索引模式。
Embedding 模型决定「文本怎么变向量」,常用的有:
| 模型 | 优点 | 价格(参考) |
|---|---|---|
| OpenAI text-embedding-3-small | 通用强、便宜 | 极低 |
| 智谱 embedding-2 | 中文好、国内稳定 | 低 |
| 阿里 text-embedding-v3 | 中文极强、阿里云生态 | 极低 |
| 自部署 BGE-large | 完全免费、可离线 | 0(自付服务器) |
国内业务推荐智谱或阿里,海外业务推荐 OpenAI,预算极紧 + 有 GPU 的团队上 BGE 自部署。
索引模式有 2 种:
- 高质量模式:用 Embedding 做向量检索,准确率高、消耗 token、有费用
- 经济模式:用关键词倒排索引,零成本,但召回不如向量
生产环境必须用高质量模式。经济模式只适合 demo 演示。
第 5 步:绑定到应用 + 调试检索
回到你的 Chatbot 或 Agent 应用 → 上下文 区域 → 添加 → 选刚才建好的知识库。
绑定后有几个关键参数:
- Top K:每次检索返回几条片段(建议 3-5,太多会污染 prompt)
- Score 阈值:相似度低于这个值的片段过滤掉(建议 0.5,调严就 0.7)
- 重排模型(可选):对召回结果再排一次,准度更高,多花一点钱
调试方法:
- 在 预览 区直接问知识库里有的问题
- 看右侧「召回片段」面板,确认检索是否命中
- 没命中 → 调小 Score 阈值 / 增大 Top K / 重新分段
- 命中但 LLM 没用 → 改 prompt 强调「优先引用上下文」
[此处放截图:应用绑定知识库 + 调试面板]
5 个让 Dify 知识库更准的高级技巧
| 技巧 | 怎么做 |
|---|---|
| 多库分主题 | 商品库、政策库、活动库分开建,按应用按需绑 |
| 父子分段救上下文 | 父段供匹配、子段供回答,长文档检索召回率提升明显 |
| 加 Q 改写 | 应用层加一个 LLM 节点先把用户口语化提问改写成检索友好的问句 |
| 加 Rerank 重排 | 召回后用 BGE-reranker 等重排模型再排一次,准度提升 10-20% |
| 元数据过滤 | 给文档打标签(如「2026 年」「华东区」),检索时只在子集里搜 |
常见坑 + 解决办法
| 现象 | 原因 | 解决 |
|---|---|---|
| 上传后解析失败 | 文件太大 / 图片型 PDF | 单文件 ≤ 15MB(云版);扫描型 PDF 先 OCR 转可搜索 PDF |
| 检索结果总不对 | 分段太大或太小 / Embedding 模型不匹配语言 | 重切片 + 换中文 Embedding;先看「召回片段」对不对再判断 |
| LLM 答得很泛、不引用知识库 | prompt 没强调引用 / Top K 太少 | prompt 加「必须基于上下文回答,找不到就说找不到」+ Top K 调到 4-5 |
| 知识库内容更新后回答还是老的 | 索引没重建 | 在知识库管理页点 重新索引,或直接删旧文件重传新版 |
| 检索很慢 | 文档量大 / 向量库参数 | 自部署可换 Milvus / Qdrant;云版联系客服调配置 |
| 多个知识库一起绑越绑越糊 | Top K 没合理分配 | 限制每个库的 Top K,或者让应用自己按问题路由到单个库 |
一个完整实战案例:搭一个「内部 SOP 答疑机器人」
需求:把公司 200 多份 SOP 文档喂给 AI,员工随时问 AI「请假流程是啥」「报销怎么走」,AI 准确引用 SOP 段落回答,不编造。
实施步骤:
- 整理文档:把零散的 Word、PDF 都转成 Markdown,每个 SOP 一份文件,开头写清楚标题
- 建库:在 Dify 建一个「内部 SOP」知识库,自定义分段按
##切,长度 600 token,重叠 80 - 选 Embedding:内部数据,用阿里 text-embedding-v3(数据走阿里云、便宜、中文好)
- 建应用:新建一个 Chatbot 应用,绑定知识库,Top K = 4,Score 阈值 0.5
- 写 Prompt:给应用配下面这套指令
你是公司内部 SOP 答疑助手。
任务
- 根据「检索上下文」中的 SOP 内容回答员工提问
- 必须基于上下文,找不到答案就说「未在 SOP 中找到,请咨询 HR」
- 回答末尾标注引用了哪份 SOP(如:参考《2026 报销流程》)
风格
- 简洁直接,3 句话以内说完
- 步骤型问题用编号列表
- 不要编造金额、时间、人名
边界
- 涉及薪酬、合同细节,引导员工去找 HR
- 涉及法律、合规问题,引导找法务
现在请回答员工的问题。
- 测试 + 上线:找 10 个真实场景的问题测一遍,调通后发到企微或飞书机器人
实测下来,SOP 类高频问题的答对率能到 85% 以上,比让员工自己翻文档省事得多。
进阶 / 下一步
- Dify 怎么用?开源 LLMOps 平台 0 基础上手:Dify 基础教程
- Dify 工作流编排实战:把知识库接进多步 Workflow
- RAG 是什么?让 AI 看你私有资料的关键技术:理解底层原理
- GPT 知识库 RAG 怎么用:对比 ChatGPT 自定义 GPT 的玩法
- 扣子 vs Dify vs FastGPT 对比:3 大平台知识库横评
常见问题
Q:Dify 知识库最多能存多少文档? A:云版有套餐限制(具体看官网订阅页),自部署无上限——理论上你的向量数据库(默认 Weaviate)能存几亿条片段。十万级文档完全没压力。
Q:上传的文档会被 Dify 拿去训练模型吗? A:云版按 Dify 隐私政策处理,不会拿用户数据训练模型(以最新官方政策为准)。如果你的数据极度敏感(医疗、金融、合同),直接上自部署版彻底不出网最稳。
Q:知识库支持图片和表格吗? A:表格支持(Excel / CSV / Word 表格自动解析)。图片本身不被向量化,但图片型 PDF 经 OCR 后可以变成可检索文本。复杂图表建议手动转成 Markdown 表格。
Q:能不能让知识库根据用户身份返回不同内容? A:可以。在应用层做权限路由——不同角色的用户走不同的知识库,或在 prompt 里加角色变量过滤。Dify 没有内置的「细粒度文档权限」,需要在应用编排时自己实现。
Q:检索效果一般,要不要换 Embedding 模型? A:先调分段策略和 prompt,再考虑换模型。80% 的检索问题是分段太大/太小、prompt 没强调引用、Top K 配错——这些都是 5 分钟能改的,比换模型省事。
Q:Dify 知识库 vs 自己搭 LangChain RAG 哪个好? A:追求快速上线、给业务/运营用 → Dify 知识库(5 分钟搭好);追求深度定制、给开发团队长期维护 → LangChain / LlamaIndex(灵活但要写代码)。Dify 知识库的能力对 80% 的企业 RAG 场景已经够用。