Dify系列(四):RAG 技术知识库搭建与检索优化实战

摘要:本文是 Dify 学习系列的第四篇,聚焦于 RAG(检索增强生成)*技术的原理与实战。你将学习 RAG 的基本思想与核心价值,了解知识库构建的关键步骤(文档准备、文本切片、向量化),并掌握 Embedding 模型的配置方法。通过搭建"王者荣耀新英雄知识库"的完整案例,你将亲身体验从文档导入、分段设置到检索优化、应用创建的全过程,最终实现一个基于私有知识的游戏助手。

1. RAG 的基本原理

1.1 为什么需要 RAG

为了改善大模型输出在时效性、可靠性与准确性方面的不足(特别是"幻觉"问题),以便让其在更广阔的空间大展拳脚,特别是为有较高工程化能力要求的企业级应用做 AI 赋能,各种针对大模型应用的优化方法应运而生。RAG 就是其中一种被广泛研究与应用的优化架构。截至目前,RAG 在大量的场景中展示了强大的适应性与生命力。

当我们询问一些最新信息时,大模型就会因为知识过时,无法回答:

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

1.2 RAG 的基本思想

将传统的生成式大模型与实时信息检索技术相结合,为大模型补充来自外部的相关数据与上下文,以帮助大模型生成更丰富、更准确、更可靠的内容。这允许大模型在生成内容时可以依赖实时与个性化的数据和知识,而不仅仅是依赖训练知识。

2. 知识库构建

2.1 文档准备

一般可以分为文档类型表格类型。需要对文档进行预处理:

  • 清理无关内容(广告、水印)
  • 按主题分类整理
  • 文件命名规范(含关键信息)

2.2 文档切片

为了适应大语言模型的上下文长度限制,并提升检索的精准度和效率,需要对文档进行切片。

切分方式

  1. 按字符数切分(固定长度每 300 字符一段)
  2. 按符号切分(按照句号、换行符、感叹号等)
  3. 按语义切分(识别主题变化点智能切分)

一般选择方式

按照符号和字符长度一块切分,通常 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 接口,让智能体具备调用外部服务的能力。

相关推荐
泰恒2 小时前
大模型部署到本地教程
人工智能·深度学习·机器学习
亿洋2 小时前
vscode的continue插件接入第三方自定义中转api
人工智能·vscode·编辑器
Cosolar2 小时前
别再羡慕 Python 了!Java 开发者的 AI Agent 全指南:四大框架从选型到实战
java·人工智能·后端
YA8888888888892 小时前
B端拓客号码核验:行业困局突围与技术赋能路径探析,氪迹科技法人股东核验系统,阶梯式价格
大数据·人工智能
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-03-29
数据库·人工智能·经验分享·神经网络·chatgpt
AI浩2 小时前
第 2 章 项目初始化与结构深度解析
人工智能
穆利堂-movno12 小时前
2026年爆火OpenClaw龙虾在物业行业的应用场景解析,物业openclaw-物业龙虾
人工智能·开源·自动化·新网物业收费软件·新网物业软件系统·物业openclaw·物业龙虾
Light602 小时前
财务系统进销存账套设计指南:从传统记账到智能决策的进化之路
人工智能·数字化转型·ai智能·财务系统·业财一体化·进销存管理·账套设计
踩着两条虫2 小时前
AI驱动的Vue3应用开发平台 深入探究(十六):扩展与定制之自定义组件与设计器面板
前端·vue.js·人工智能·开源·ai编程