摘要:本文是 Dify 学习系列的第四篇,聚焦于 RAG(检索增强生成)*技术的原理与实战。你将学习 RAG 的基本思想与核心价值,了解知识库构建的关键步骤(文档准备、文本切片、向量化),并掌握 Embedding 模型的配置方法。通过搭建"王者荣耀新英雄知识库"的完整案例,你将亲身体验从文档导入、分段设置到检索优化、应用创建的全过程,最终实现一个基于私有知识的游戏助手。
1. RAG 的基本原理
1.1 为什么需要 RAG
为了改善大模型输出在时效性、可靠性与准确性方面的不足(特别是"幻觉"问题),以便让其在更广阔的空间大展拳脚,特别是为有较高工程化能力要求的企业级应用做 AI 赋能,各种针对大模型应用的优化方法应运而生。RAG 就是其中一种被广泛研究与应用的优化架构。截至目前,RAG 在大量的场景中展示了强大的适应性与生命力。
当我们询问一些最新信息时,大模型就会因为知识过时,无法回答:

通过 RAG(检索增强生成)技术,大模型能够通过检索来获取最新的知识:

1.2 RAG 的基本思想
将传统的生成式大模型与实时信息检索技术相结合,为大模型补充来自外部的相关数据与上下文,以帮助大模型生成更丰富、更准确、更可靠的内容。这允许大模型在生成内容时可以依赖实时与个性化的数据和知识,而不仅仅是依赖训练知识。
2. 知识库构建
2.1 文档准备
一般可以分为文档类型 和表格类型。需要对文档进行预处理:
- 清理无关内容(广告、水印)
- 按主题分类整理
- 文件命名规范(含关键信息)
2.2 文档切片
为了适应大语言模型的上下文长度限制,并提升检索的精准度和效率,需要对文档进行切片。
切分方式:
- 按字符数切分(固定长度每 300 字符一段)
- 按符号切分(按照句号、换行符、感叹号等)
- 按语义切分(识别主题变化点智能切分)
一般选择方式 :
按照符号和字符长度一块切分,通常 200-500 字/段。长度太小会导致上下文不完整、检索不准;长度太大则会带入无关信息,干扰判断。
2.3 文档向量化
将切分后的文本进行向量数字化,便于计算问题和文档的相似性。
向量化的作用:
- 语义理解
- 相似度计算
- 快速检索
3. Text Embedding 模型导入
在 RAG 架构中,Text Embedding 和 LLM 的分工其实非常清晰:Embedding 模型负责"检索",LLM 负责"生成" 。具体来说,当我们在 Dify 中导入文档构建知识库时,Embedding 模型会将每一段文本转化为数学向量并存入向量数据库,相当于为知识库建立了一个高效的"索引系统";而当用户提问时,系统会先用同一个 Embedding 模型将问题也转化为向量,从数据库中快速检索出语义最相关的文本片段;随后 LLM 才登场,它接收用户的问题和检索到的文本作为上下文,进行理解、推理和语言组织,最终生成一段通顺、准确的回答。简单比喻就是:Embedding 像是图书管理员,帮我们从海量藏书中快速找到相关段落;LLM 则是资深发言人,读懂这些材料后用我们自己的话把答案讲出来。两者各司其职、协同配合,才能实现 RAG 既基于私有知识又具备流畅对话能力的核心效果。
3.1 获取 API Key
进入阿里云百炼 大模型服务平台百炼控制台。

创建 API Key 并保存。
3.2 添加新模型
在 Dify 中找到 OpenAI 模型供应商,并添加模型。

填写你的 API Key,其他配置参考下图:

4. 搭建王者荣耀新英雄知识库
4.1 创建知识库
进入 Dify,找到知识库,然后创建知识库。

4.2 选择数据源
导入准备好的文档。

4.3 文本分段
这是原文档内容的格式:

现在进行分段设置:
- 分段标识符 :分隔符用于分隔文本,
\n\n和\n常用于分隔段落和行。用逗号连接分隔符(\n\n,\n),当段落超过最大块长度时,会按行分割。也可以使用自定义的特殊分隔符(例如***)。 - 分段最大长度:设定每段文本的字符数上限,根据需求选择。
- 分段重叠长度:设置分段之间的重叠长度可以保留语义关系,提升召回效果。建议设置为最大分段长度的 10%-25%。
通过预览查看效果:

4.4 检索设置
设置上节导入的 Embedding 模型,检索设置推荐使用混合检索。
- Top K:用于筛选与用户问题相似度最高的文本片段。系统同时会根据选用模型上下文窗口大小动态调整分段数量。

最后保存并处理:

4.5 查看结果
知识库创建成功:

5. 实现王者荣耀游戏助手的搭建
5.1 创建空白应用

5.2 构建提示词

5.3 选择知识库

5.4 结果验证

至此,一个基于私有知识库的王者荣耀游戏助手就搭建完成了。当用户提问时,系统会从知识库中检索相关内容,结合大模型生成精准回答。
小结
下一篇将进入 自定义工具 的学习,深入讲解 Function Call 的原理,以及如何在 Dify 中使用内置工具和自定义 API 接口,让智能体具备调用外部服务的能力。