news 2026/6/21 1:24:56

AI大模型学习第十五天:从 RAG 原理到 Dify 实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI大模型学习第十五天:从 RAG 原理到 Dify 实战

你好!如果你正在学习怎么让大模型(比如 ChatGPT、通义千问)真正为你所用——不仅能回答公开知识,还能读懂你公司的内部文档、记住你的业务数据、甚至处理录音和图片——那么这篇文章就是为你准备的。

我会带你从零开始,理解大模型应用开发中最核心的几个概念:RAG(检索增强生成)知识库数据库多模态处理,然后手把手教你用Dify这个开源平台把理论变成能跑的应用。全程不贴复杂源码,只用大白话和实际操作为你拆解每一步。


一、先搞懂三个核心概念:知识库、数据库、RAG

很多新手分不清“知识库”和“数据库”,觉得都是存东西的。实际上它们解决的问题完全不同

1.1 知识库 vs 数据库(记住这张表就够了)

对比点知识库数据库
存什么文档、段落、文本片段(PDF、Word、网页)表格、字段、记录(Excel、CSV)
用来干嘛检索和召回相关内容,“从资料里找答案”增删改查结构化数据,“对表格做操作”
是否常改通常不频繁修改(比如公司制度一年一改)经常新增、修改、删除(每天签到、订单)
工作流节点知识库检索节点数据库节点(查询、新增、更新、删除)
典型场景课程问答、产品说明书问答、制度问答签到记录、绩效管理、订单查询、用户信息

错误理解:只要是自己的数据都放知识库 → 错。表格数据放知识库没法做“把张三的分数加5分”这种操作。反之,长篇文档放数据库也不合适,因为数据库不擅长检索段落语义。

1.2 什么是 RAG(检索增强生成)?为什么需要它?

大模型本身有几个硬伤:

  • 知识截止到训练时,不知道最新信息

  • 不知道你公司的内部资料

  • 遇到不确定的问题容易瞎编(幻觉)

  • 每次资料变化都去重新训练模型,成本太高。

RAG 的思路非常巧妙:不把知识硬塞进模型大脑,而是让模型在回答问题时,先去你的资料库里翻书,找到相关内容,再结合自己的语言能力来回答。

标准流程长这样:

你的文档 → 解析 → 切分成小段 → 转换成向量(语义指纹)→ 存入向量库 用户提问 → 把问题也转成向量 → 检索最相似的几个片段 → 把片段+问题一起给大模型 → 大模型生成回答

这个过程里最关键的一步是分段(chunking)——把长文档切成一个个小片段。切太大,检索不精准;切太小,上下文不完整。通常还会让相邻片段重叠几句,避免知识点被拦腰切断。

1.3 三种检索方式:全文检索、语义检索、混合检索

  • 全文检索:关键词匹配,就像你在 Word 里按 Ctrl+F 搜一个词。优点是精确,缺点是换成同义词就搜不到。

  • 语义检索:把文本和问题都转成“向量”(一串数字,代表语义位置),计算向量之间的距离。意思越近,向量越接近。优点是灵活,换说法也能找到。

  • 混合检索:把前两者结果合并,再排序一次,取长补短。这是目前最稳的做法。

调参小贴士:在实际使用中,你主要调三个参数:

  • 召回数量(TopK):每次返回几个片段?太少漏信息,太多模型读太多无关内容。建议 3~5。

  • 最小匹配度(Score):相似度门槛。0.5 宽松,0.7 平衡,0.85 严格。如果资料质量高,可以设高一点。

  • 查询改写:把用户口语化问题(如“那个啥,怎么弄”)改成规范检索词,大幅提升召回率。


二、多模态:让 AI 能看、能听、能说、能生成

除了文字,真实世界还有图片、音频、视频。大模型应用也要覆盖这些。

2.1 图像能力

  • 文生图:你写一段描述(“一只穿西装的猫,坐在办公室”),AI 给你画出来。提示词要包含:主体、场景、风格、光线、颜色,以及你不希望出现什么。

  • 图片清晰度提升:把模糊的老照片变清晰。注意这不是魔法,原图信息严重缺失时效果有限,而且通常消耗积分。

2.2 音频能力

  • 语音转文字(ASR):把面试录音、会议录音转成文字。转出来的文字通常没有标点,需要再让大模型加上标点、整理成通顺段落。

  • 文字转语音(TTS):把一段文字变成语音,像 AI 配音。可以选音色、语速、情绪。常见于短视频解说、有声新闻。

2.3 视频生成

根据文字描述生成几秒钟的视频。目前成本高、效果不稳定(人手、物理动作容易出错),真实工作中通常需要多次生成再人工剪辑,不要对它期望太高。

把这些能力放到真实场景里(比如 AI 面试助手):

  • 简历评估:知识库存简历模板,数据库存违禁词,大模型分块评估。

  • 面试录音分析:ASR 转文字,大模型区分角色、提取问答对、评估表现。

  • 面试题生成:从知识库检索岗位要求,从数据库读历史题,大模型生成新题。

  • 批量处理:循环处理多个候选人的数据。


三、Dify 是什么?为什么选它?

Dify 是一款开源的大语言模型应用开发平台,它把构建 AI 应用所需的技术栈(模型接入、Prompt 编排、RAG 引擎、Agent 框架、工作流编排)全部打包好,让你像搭积木一样快速搭建生产级应用。

和 Coze 相比,Dify 的核心定位是面向开发者的 LLMOps 与 BaaS 平台,强调私有化部署、模型中立(支持超 50 个模型)、精细控制工作流和 RAG。Coze 更偏向面向消费者的 AI 应用商店,零代码快速发布到抖音、飞书。

什么时候选 Dify?

  • 你需要私有化部署,数据不出公司(金融、医疗行业刚需)。

  • 你想自由切换模型,不被某一家锁定。

  • 你的业务逻辑复杂,需要多步骤、多分支的工作流。

  • 你的文档格式多样(扫描件、表格、图文混排),需要更强的解析能力。

如果你只是个人玩玩,想几分钟搭个聊天机器人发到社交平台,那 Coze 更合适。


四、Dify 安装实战(附避坑地图)

Dify 官方推荐用 Docker 部署。在动手之前,你得先理解两个 Docker 概念,不然装完也不知道它在干啥:

  • 镜像(Image):一个只读的“安装包”,里面包含完整操作系统 + 应用。

  • 容器(Container):镜像运行起来的实例,可启动、停止、删除。

4.1 安装 WSL 2(仅 Windows 用户)

Docker 依赖 Linux 内核,所以 Windows 要先装 WSL(Windows Subsystem for Linux)。打开 PowerShell(管理员),敲:

wsl --install

安装完成后必须重启电脑

如果提示“虚拟化未开启”,去 BIOS 把 Intel VT-x 或 AMD SVM 打开。

4.2 安装 Docker Desktop

下载安装包,安装时务必勾选“使用 WSL 2 代替 Hyper-V”。装完后,进入 Settings → Docker Engine,加上国内镜像源(如https://docker.m.daocloud.io),否则拉取镜像慢到崩溃。

4.3 拉取并启动 Dify

  1. 从 GitHub(langgenius/dify)下载源码压缩包,解压。

  2. 进入docker文件夹,把.env.example重命名.env

  3. 在该目录打开终端,执行docker compose up -d

  4. 等待镜像拉取(首次可能几 GB,耐心等,断线重试会自动续传)。

  5. 浏览器访问http://127.0.0.1/install,注册管理员账号。

如果启动失败:检查端口是否被占用(80、443、6379),或者重新执行docker compose downup。大多数问题重试就能解决。


五、第一个工作流:让大模型听话

5.1 接入模型供应商

点击右上角头像 → 设置 → 模型供应商。Dify 把模型分成三类:

  • 系统推理模型(对话用)

  • Embedding 模型(知识库向量化用)

  • 语音转文字模型

以通义千问为例:填入 API Key(阿里云百炼申请)和模型名称(如qwen-turbo),保存测试连通性。

如果想接本地 Ollama,注意 Ollama 默认只监听127.0.0.1,需要改成0.0.0.0才能让容器里的 Dify 访问。

5.2 创建空白工作流

在“工作室”点击“创建空白应用”,类型选工作流

5.3 拖拽节点

  • 开始节点:增加一个输入变量query(文本类型),代表用户问题。

  • LLM 节点:拖到画布,连接开始节点。模型选刚接入的,系统提示词写“你是一个乐于助人的助手,请用中文回答”,上下文引用query

  • 结束节点:输出 LLM 节点的text

点击“试运行”,输入“西安有什么好吃的”,你会看到模型返回回答。如果回答是英文,就在系统提示词里强调“用中文”。


六、重头戏:知识库 RAG 完整实战

6.1 创建知识库

顶部导航栏点击知识库→ 创建知识库。选择数据源(支持 PDF、Word、Excel、TXT、HTML 等),上传你的文档,点击下一步。

6.2 配置分段模式(核心)

Dify 提供两种模式:

  • 通用模式:手动设置分段标识符(默认\n按段落分)、最大长度(默认 500 Tokens)、重叠长度(建议 10-25%)。

  • 父子模式(推荐新手):自动生成大块(父块)和小块(子块)。检索时用子块精确定位,然后把整个父块给大模型补充上下文,兼顾准确性和完整性。在 AI 客服场景中,用户问题命中一个句子,系统把整个段落送给模型,回答就更有底气。

6.3 索引方法与检索设置

  • 经济模式:关键词检索,省 token,但精度略低。

  • 高质量模式:向量检索,精度高,消耗 token。提供三种检索方式:

    • 向量检索:语义匹配,找意思相近的。

    • 全文检索:关键词匹配。

    • 混合检索:两者结合,再排序。可以启用 Rerank 模型进一步优化排序。

参数调优:

  • TopK:推荐 3~5。

  • Score 阈值:默认 0.5。资料杂就调高到 0.7,资料少就降到 0.3。

6.4 验证知识库效果

处理完成后,页面显示“嵌入完成”。在右侧“召回测试”里输入问题,系统会显示召回的片段和相似度分数。分数越高说明匹配越好——如果召回结果不理想,回去调整分段规则或阈值。

6.5 在工作流中使用知识库

方式一:Agent 直接引用
创建 Agent 应用,在上下文里添加知识库,就可以直接对话。

方式二:工作流(Chatflow)引用

  1. 创建 Chatflow 应用。

  2. 在 LLM 节点前加一个“知识检索”节点,选择你的知识库。

  3. LLM 节点的上下文选择检索节点的result

  4. 系统提示词写:请根据文本内容{{#context#}}回答

  5. 加一个“直接回复”节点输出结果。

  6. 试运行。

关键设计思路:先查知识库,如果有结果就用知识库回答;如果没结果(Score 太低),可以调用联网搜索兜底;最后大模型润色成自然语言。千万不要把检索到的原始片段直接丢给用户,一定要让大模型整理一下。


七、高级进阶:用工作流自动生成微调语料

微调(Fine-tuning)是用你的专业数据再训练大模型,让它变成某个领域的专家。但微调的第一步就是准备“问答对”数据集,手动整理几百条太累人。Dify 的工作流可以帮你批量生成。

微调语料的标准格式是 JSONL,每行一个 JSON 对象,包含messages数组,里面有三个角色:

  • system:系统指令(比如“你是一个科普达人”)

  • user:用户问题

  • assistant:模型回答

工作流节点构成

  1. 开始节点:接收两个输入——attachments(上传文档)和systemprompt(系统提示词)。

  2. 文档提取器:解析文档内容(注意不支持 Word)。

  3. 代码执行节点:因为 Dify 的 LLM 有上下文长度限制,用代码把文档截取前 800 字符(你也可以改成 2000,但要看你用的模型窗口大小)。

  4. LLM 节点:系统提示词定义角色和生成规范,要求每次生成 10 个生活化问题,答案必须基于原文,输出严格的 JSONL 格式。

  5. 结束节点:输出 JSONL 文本。

运行后你会得到一批问答对,保存为.jsonl文件,以后微调模型时直接喂给训练框架。这个案例展示了 Dify “代码节点 + LLM 节点”协同工作的强大之处——不仅能做问答,还能帮你准备训练数据,打通整个 AI 应用生命周期。


八、再进一步:接入 RAGFlow 处理扫描版 PDF

Dify 自带知识库对扫描版 PDF(图片型)解析效果不够好。这时候引入RAGFlow——一个基于深度文档理解(DeepDoc)的开源 RAG 引擎,能通过 OCR、布局识别、表格结构识别把图片里的文字精准提取出来。

8.1 安装 RAGFlow(小心端口冲突)

因为 Dify 已经占用了 80 端口和 6379 Redis 端口,RAGFlow 必须错开:

  1. 克隆源码:git clone https://github.com/infiniflow/RAGFlow.git

  2. 进入docker目录,修改docker-compose.yml,把 web 端口映射从80:80改成8880:80

  3. 修改.env文件,把 Redis 端口从 6379 改成6380

  4. 执行docker compose up -d

  5. 浏览器访问127.0.0.1:8880,注册登录。

8.2 在 RAGFlow 中创建知识库

点击“知识库” → “新建”,上传文档,RAGFlow 提供多种分片方式,针对不同文档类型优化:

  • General:通用文档(DOCX、PDF、PPT 等)

  • Q&A:问答对(Excel 或 CSV)

  • Resume:简历解析为结构化数据

  • Manual:手册(按标题层级切分)

  • Table:表格数据

  • Paper:论文(按章节切分)

  • Book:书籍(可设置页面范围)

  • Laws:法律文书(按“ARTICLE”粒度)

RAGFlow 还支持知识图谱,开启后能提升关系查询的效果。

8.3 打通 Dify 和 RAGFlow

这一步最容易踩坑:

  1. 在 RAGFlow 右上角头像 → API,生成一个 API Key(以ragflow-开头)。

  2. 获取你的局域网 IP(命令行ipconfigifconfig,一般是192.168.x.x)。

  3. 回到 Dify 的知识库页面,点击“连接外部知识库”→ “外部知识库 API”。

  4. 填入:

    • API Endpointhttp://{你的局域网IP}:9380/api/v1/dify千万不能用127.0.0.1,因为 Dify 运行在容器里,容器内的 127.0.0.1 指向容器自己,不是宿主机。

    • API Key:填刚才生成的ragflow-密钥。

    • 知识库 ID:从 RAGFlow 知识库详情页的 URL 里获取。

  5. 点击“连接”。

连接成功后,在 Dify 的 Agent 或工作流中,上下文里就可以添加这个外部知识库了,检索时自动调用 RAGFlow 的深度解析能力。


九、数据库操作:不只是检索,还能增删改查

知识库是“只读”的,但数据库可以增、删、改、查结构化数据。以绩效数据表为例(工号、姓名、绩效等级):

9.1 查询数据

用户问:“张三的绩效是多少?”系统先提取关键信息(人名“张三”,字段“绩效”),然后去数据库查name == "张三"的记录,最后把结果(比如“B级”)用自然语言说出来。

9.2 新增数据

用户说:“新增员工乔峰,工号 666,绩效 S。”系统抽取姓名、工号、绩效,调用新增节点写入数据库。注意:如果用户漏了必填字段,系统应该提示,而不是盲目新增。

9.3 更新数据

用户说:“把乔峰工号 666 的绩效改成 D。”系统先用姓名+工号定位唯一记录,再更新绩效字段。为什么要用两个条件?因为姓名可能重名,工号如果用户输错也很危险,联合条件更稳。

9.4 删除数据

用户说:“删除乔峰工号 666 的绩效记录。”系统定位后删除。真实业务中删除要非常谨慎,通常建议用“软删除”(加一个“已删除”标记),而不是物理删除。

易错点

  • 工号虽然看起来是数字,但通常不参与计算,最好存成字符串(避免前导 0 丢失)。

  • 字段名、抽取字段名、节点绑定字段名必须完全一致

  • 更新和删除必须有明确条件,不能只靠姓名这种不稳定条件。


十、总结与选型建议

Dify vs Coze 怎么选?

维度CozeDify
定位AI 应用商店/生态LLMOps 与 BaaS 平台
目标用户非技术人员、运营、创作者开发者、AI 工程师、企业技术团队
模型支持优先字节及国内模型,相对封闭支持 50+ 开源与商用模型,模型中立
功能重心对话体验,快速发布到飞书、抖音复杂工作流编排、精细 RAG 控制
部署方式SaaS,数据平台托管支持私有化部署,数据自主可控
开源协议部分组件开源开源(Apache-2.0),Open-Core

简单结论

  • 个人练手、快速原型、发到社交平台 →选 Coze

  • 企业级应用、私有化部署、复杂逻辑、深度定制 →选 Dify

  • 可以先用 Coze 验证想法,再移植到 Dify 做生产环境。


十一、最后给你一张“避坑清单”

  • ❌ 知识库不是数据库,不要混用。

  • ❌ 文档上传后一定要看分段效果,分段不好检索就废。

  • ❌ 检索结果不要直接丢给用户,必须大模型润色。

  • ❌ 知识库无结果时要有兜底(联网搜索或提示)。

  • ❌ 数据库字段名和节点绑定的字段名要完全一致。

  • ❌ 更新和删除必须用联合条件定位(如姓名+工号)。

  • ❌ 工号存成字符串,不要存数字。

  • ❌ 多模态节点的输入类型要改对(图片用 image,音频用 audio)。

  • ❌ ASR 输出没标点,记得后续处理。

  • ❌ 视频生成成本高、效果不稳定,别过度承诺。


读完这一篇,你相当于同时掌握了Coze 的理论知识Dify 平台的实战技能。接下来,建议你打开电脑,按顺序把工作流、知识库、RAGFlow 都跑一遍。犯错不怕,Dify 的沙箱环境随便折腾——你离自己的第一个 AI 应用,只差一个“试运行”按钮。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 1:24:15

【2026最新】动漫共和国官网入口,追番看剧一键直达入口

对于喜欢追番、补番和观看热门动漫的用户来说,找到一个稳定、更新及时的动漫平台非常重要。动漫共和国凭借丰富的动漫资源、流畅的播放体验以及简洁的界面设计,受到不少动漫爱好者的关注。 动漫共和国官网入口 官方网站:https://omofun111.…

作者头像 李华
网站建设 2026/6/21 1:05:07

JetBrains试用期重置终极指南:让开发工具永久免费使用的技术方案

JetBrains试用期重置终极指南:让开发工具永久免费使用的技术方案 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在当今软件开发领域,JetBrains系列IDE以其卓越的代码智能和开发体验备受开…

作者头像 李华
网站建设 2026/6/21 0:57:19

Win11本地部署OpenClaw:系统级AI智能体实战指南

1. 项目概述:这不是又一个“一键部署”幻觉,而是 Win11 上真正能跑起来的 OpenClaw 本地智能体OpenClaw 这个名字最近在技术圈里冒得很快,尤其在专利辅助、代码生成、文档结构化处理这类强逻辑、重上下文的场景里,讨论热度明显压过…

作者头像 李华
网站建设 2026/6/21 0:39:57

GPT-5 mini驱动MATLAB Copilot:从代码补全到智能编程伙伴的进化

1. 从“能用”到“好用”:GPT-5 mini如何重塑MATLAB编程体验最近在搞一个复杂的信号处理项目,用MATLAB写滤波器组和频谱分析代码。说实话,虽然MATLAB的矩阵运算和工具箱很强大,但每次写那些重复性的数据预处理、可视化代码&#x…

作者头像 李华