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 接口,让智能体具备调用外部服务的能力。

相关推荐
承渊政道几秒前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从退化问题到信息高速公路:ResNet残差网络实战拆解)
网络·人工智能·pytorch·深度学习·resnet·chatglm·卷积
大鱼>6 分钟前
宠物行为识别AI算法详解:从数据采集到模型部署的完整方案
人工智能·深度学习·算法·宠物
doiito(Do It Together)9 分钟前
【开源项目】Rust 重构 TTS 引擎:kokoroi-rs 的高性能流水线架构揭秘
人工智能
王莎莎-MinerU10 分钟前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
AI服务老曹11 分钟前
Docker部署AI视频分析平台项目实战记录
人工智能·docker·音视频
KaMeidebaby15 分钟前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
AndrewHZ17 分钟前
【LLM技术全景】混合精度与分布式训练:训练大模型的工程奥秘
人工智能·分布式·深度学习·算法·ai·语言模型·llm
万岳科技程序员小金17 分钟前
真人数字人小程序如何开发?AI数字人平台搭建流程全面解析
人工智能·小程序·ai数字人系统源码·ai数字人平台搭建·ai数字人小程序开发
吴佳浩24 分钟前
为什么 MCP、Skill、RAG 能工作?从 Conversation Loop 看现代 Agent 的底层架构
人工智能·llm·agent
2501_9139817825 分钟前
AI与边缘计算助力视频监控与智能预警安防物联网方案
人工智能·音视频·边缘计算·智能安防监控