跳转至

Dify查询知识库工作流的搭建

本节目标

1、理解知识库与RAG的核心概念

2、掌握 Dify 知识库的完整搭建流程

3、理解影响RAG效果的关键因素

4、掌握基于知识库的工作流搭建

一 知识库,RAG解释

1、什么是知识库

知识库就是一堆结构化或非结构化的内容集合

  • 文档(产品说明、制度、FAQ(高频问答对))
  • 数据(说明性内容)
  • 网页内容
  • PDF、Word 等资料

AI在回答问题时,不是“瞎编”,而是:先去知识库里找 → 再整理成答案

2、什么是RAG

RAG(Retrieval Augmented Generation

检索增强生成 = 先查资料,再生成答案

检索(Retrieval):从知识库中找到相关内容

增强(Augmented):把这些内容加入提示词

生成(Generation):由大模型整理并输出答案

img

3、在 Dify 里的作用

在 Dify 中,知识库的核心作用是:

给 AI 提供“企业私有数据能力”

实现流程其实就是一套经典 RAG:

用户提问
 → 去知识库做向量检索
 → 找到最相关内容
 → 交给大模型整理
 → 返回答案

4、画图说明

img

二 文档语料介绍

本节课,我们使用产品说明文档,作为文档语料,产品说明文档为pdf格式。

img

我们可以打开查看具体产品信息:

img

三 Dify如何搭建知识库

1、点击创建知识库

如图所示点击创建知识库

img

2、创建数据源

点击选择文件:

img

选择文件后,点击下一步

img

3、文本分段与清洗

(1)分段设置

img

我们可以选择通用分段或父子分段。

1)通用分段(最简单)

理解:把一大段文章,平均切成一小块一小块

举个例子:

一篇文章:10000字

通用分段就是:每1000字切一段,每段之间稍微“重叠一点”(比如50字)

2)父子分段(进阶玩法)

理解:大块用来“理解上下文”,小块用来“精准查找”

举个例子:

一篇文档:先切 大块(父段):1000字,再切 小块(子段):200字

检索时发生什么?

当用户提问时:

1、先用子段(小块)去检索(更精准) 2、找到相关内容 3、再把对应的父段(大块)拿出来 4、一起给大模型

为什么这么设计?

1、小块 → 更容易“匹配问题”

2、大块 → 信息更完整(不丢上下文)

这里我们采用父子分块

(2)索引方式

img

1)高质量(推荐)

用AI理解内容再匹配:准确,稍微费点token

2)经济模式

用关键词匹配:便宜、快,不智能、容易漏。

这里我们选择高质量模式。

(3)Embedding模型

img

embedding模型作用:把文本变成“向量”,让AI能计算相似度

这里我们选择通义的text-embedding-v4模型

(4)检索设置

img

img

img

1)检索设置

控制AI怎么找资料 + 找多少 + 多精准

2)向量检索

按“语义”找(最常用)

能理解意思

RAG核心方式

3)全文检索

按“关键词”找

快、简单

但不智能

4)混合检索(推荐)

语义 + 关键词一起用

更稳、更准

这里,我们选择混合检索,参数设置如下:

img

4、处理并完成

进行处理并完成,会自动进行嵌入处理,点击:前往文档。

img

等待完成后,点击修改,可以修改知识库名称:

img

img

5、召回测试

img

四 Dify工作流使用知识库

我们回到刚才的工作流,我们需要搭建一个RAG的工作流,如图所示:

img

1、知识检索

知识检索,就是根据用户输入,检索知识库中的内容。

img

2、大模型节点设置

可以根据大模型节点回复用户问题,如图所示进行设置:

img

系统提示词:

你是一个严谨、可靠的智能问答助手,请严格依据用户提供的信息进行回答。

【核心规则】
1. 只能基于用户提供的信息进行回答,禁止使用任何外部知识
2. 不允许编造、猜测或补全未提供的信息
3. 如果信息不足或无法确定答案,必须明确说明:
   “根据已提供的信息无法回答该问题”
4. 所有结论必须可以在提供的信息中找到依据

【回答流程】
1. 先判断信息是否足够回答问题
2. 若足够:
   - 提取关键信息
   - 进行归纳总结
3. 若不足:
   - 直接说明无法回答
   - 不进行任何推测

【输出要求】
- 使用中文回答
- 结构清晰,优先使用分点说明(如1、2、3)
- 表达简洁、准确,避免冗余
- 不输出与问题无关的内容

【严格限制】
- 禁止输出“我认为 / 可能 / 应该 / 大概”等不确定表达
- 禁止引入上下文之外的信息
- 禁止扩展性发挥(如额外建议、延伸知识等)

用户提示词:

【上下文】
{{#context#}}

【用户问题】
{{#sys.query#}}

请基于上下文回答问题。

3、知识检索直接回复

设置知识检索直接回复:

img

五 测试知识库问答

我们可以通过预览测试知识库的问答。

img

六 总结

我们首先理解了知识库和RAG的本质:AI不是直接回答,而是先检索资料,再生成答案

随后,我们基于 Dify 实现了完整流程:

  • 搭建知识库(数据导入 + 分段 + 嵌入)
  • 配置检索策略(向量 / 混合检索 + Rerank)
  • 构建RAG工作流(知识检索 + 大模型)
  • 完成问答测试验证效果