Dify搭建私有化RAG应用

Dify搭建私有化RAG应用

在阅读之前,如果你还不知道Dify是什么,没有一个本地部署的Dify,请先学习《AI工作流平台Dify本地部署》

本教程将通过实操搭建一个"生日管家",教你学会如何使用Dify来创建一个RAG(检索增强生成)应用。

大致的实现逻辑就是,AI对话的形式,提出你的诉求,根据诉求检索你的私人知识库,将知识库检索结果给到AI模型处理,AI给出定制化的回答。

下面来看详细的实操过程。

创建知识库

知识库是可以提供给AI模型检索训练的文档,通过上传各种常见格式的文档文件,转换为AI更易于检索的向量数据,存储在知识库中。你可以创建自己的私人信息库,甚至公司的技术文档,团队的项目源码,再使用本地AI检索学习,就能定制一个精通你个人业务的专属AI应用,例如生成符合团队技术栈风格的代码。

点击创建知识库,Dify支持本地文件,Notion笔记,还有url的导入形式,这里我导入一个本地写的"Anton生日.txt"

保存后,Dify集成的知识库处理模型会自动将文档内容进行向量处理,等待处理完成,前往知识库就能看到 Anton生日 知识库并使用了。

创建RAG应用

有了知识库后,下面将针对这个知识库创建一个RAG应用,就以做一个生日问答应用为简单的示例。

创建应用

前往Dify平台上的工作室模块进行应用的创建。

创建应用可以使用平台上公开的应用模板,一键复制即可再定制修改,这里我为了演示创建空白的应用,并选择工作流的形式。

开始节点

创建的空白应用仅包含一个开始节点,点击节点后的添加按钮,可以看到各种能创建的节点类型,其中"知识检索"节点就可以让工作流获取到知识库并进行检索工作。

从开始节点的配置面板可以看到,节点本身具有一些系统环境变量,例如user_idapp_idworkflow_id这些字符可以在你需要针对用户,针对对话处理特殊逻辑时提供帮助。

除系统字段之外,几乎所有节点都还有输入和输出字段,你可以自定义他们,在工作流间传递关键信息。

现在我们就需要增加一个字段,用来接收用户通过对话框发起的问题,这里创建一个 input 字段,用户的问题应该是一句文本,故而选择"文本"字段类型,且是必须输入的内容,勾选必填

知识检索节点

创建节点

处理好输入节点后,在其后方继续添加一个 知识检索节点 ,在其配置面板,知识库这一栏的右侧点击加号按钮添加知识库

添加知识库

选择刚才创建的 Anton生日 知识库

添加后就是这样的,在这个节点就会检索目标知识库

输出变量

展开输出变量,可以看到知识库检索节点的输出格式,该节点的输出没法自定义,但这些字段已经足够使用

查询变量

最后还要配置查询变量,也就是知识检索节点的输入变量,这里直接选择接收开始节点中,我们新增的input字段

节点调试

节点还支持单独调试的功能,点击调试按钮

首先会需要提供该节点必须的查询变量,也就是input字段来提供节点测试,我们输入"Anton生日是什么时候"

点击运行,即可查看该节点运行的结果

知识检索节点到此就完成了

大模型节点

如果你只想做个搜索知识库的功能,到这已经有答案了,但是增加大模型节点,能让回答更加的人性化,而且能让模型推理出更多元的答案,例如,Anton今年几岁?2000年的时候几岁?农历生日几号?

创建节点

下面来继续新增一个大模型 LLM 节点

模型配置

从LLM配置面板可以看到有模型的选择,上下文的配置,还有设置输出变量,甚至能开启视觉理解的能力,便可以发送图片来让AI解读

首先选择你想使用的AI模型,这里选择Ollama本地部署的DeepSeek-R1,能看到还有很多模型微调的参数可供调整,可以自行尝试。

上下文配置

上下文,其实就是配置输入变量,我们需要选择知识检索节点的结果,这里也能看到结果的类型是一个对象数组

选择之后会出现提示,要求你必须在下方书写的提示词中,包含上下文变量,其实就是要把输入变量,在提示词中告诉AI模型,如何使用你给的输入变量。

提示词配置
System提示词

接下来就填写提示词,提示词默认只需要填 System提示词 ,其实是你给模型设定一个"人设",例如他是一个纪念日的管家,是一个代码仓库的管理员等,并告知他擅长处理一些什么事务,有怎么样的处理风格。

如果你不知道怎么具体书写,你可以简单的写一些要点,然后点击提示词按钮,让AI模型帮你扩写优化提示词

例如,我们先把必填的上下文写入,使用{}包裹即可插入变量,且有输入提示

直接可以从下拉列表选中填入

然后稍微描述一下,让AI模型能知道如何使用上下文

接着把提示词复制起来,再点击优化按钮,粘贴过来让AI优化我们的提示词

这里出现了个小问题,提示词生成的结果不完整,这是由于Dify在调用模型生成提示词时限制了token数量

而DeepSeek-R1由于生成的结果包含思考过程,也就是 <think> 标签内的内容,导致token过大出现了不完整的情况,这里建议更换其他模型来生成提示词

修改系统模型

修改提示词生成的AI模型,需要前往"设置"-"模型供应商",点击【系统模型设置】按钮修改

在弹出的窗口中,将系统推理模型更改为其他模型,我这里将改为 Llama 3.2

回到提示词生成,可以看到提示词生成AI模型已经更改,生成的提示词也终于完整了

点击应用按钮,将提示词自动填充替换system提示词

User/Assistant提示词

设置好System提示词后,大模型知道了自己的职责,但是还缺少提问的问题,这时候就需要填写 User提示词了

点击添加消息,就会新增一个User提示词输入框,只需要将开始节点的input赋予user提示词即可

输出配置

展开输出变量,可以看到大模型节点只能输出string类型的text字段,无需配置

节点调试

大模型节点也直接单独调试,但是由于依赖知识库检索节点的上下文,单独调试并不方便,所以这里可以使用整个应用的试运行来调试,点击工作流的运行按钮,在弹出的窗口中,填入开始节点的输入,也就是你的问题。

这次有了大模型,我们可以问一些需要推理的问题,例如:Anton在2000年是多少岁

运行完成后,切换到追踪tab,展开LLM节点的运行情况,就可以看到该节点的输出是否符合预期了。

结束节点

最后再增加结束节点,用来做整个工作流最终答案的呈现

在配置面板中,增加输出变量,并选择LLM节点的text输出字段

到此工作流的搭建就完成了。可以再来调试一遍完整的流程看看,这次不需要去追踪tab了,因为有了结束节点,直接输出了结果

应用发布

点击发布按钮,即可发布做好的AI工作流应用了

发布后去到应用首页,也就是探索页的工作区,你发布过的应用都能在这里这里使用了

输入问题试试看,结果符合预期

总结

到此一个简单的RAG应用就完成了,你还可以通过Dify平台的低代码美化你的应用,改造成AI Agent更美观的对话应用等,这些都是锦上添花的,最重要的核心逻辑就是AI工作流的使用。除了本教程中使用到的节点之外,还有代码节点能写JS/python脚本,媒体节点能处理图片,插件节点能拓展功能,总之发挥你的想象,看看能做出什么吧!

Dify开源的私有化部署AI工作流是足够强大的,但是想要丰富的模型功能,需要拥有诸多模型供应商的API-KEY,这都是要money的。所以如果你对个人应用的数据没有非常严格的私密需求,可以试试字节的Coze,他集成了许多免费的模型和插件,上手成本更低,如果你有兴趣,可以期待我后续的coze搭建一键图文生成的教程

相关推荐
LucianaiB2 小时前
Trae编程:用腾讯云 HAI 快速开发一个智能客服助手,白嫖党的福利到底有多香?
后端·aigc
九歌AI大模型5 小时前
Dify 搭建私有数据可视化智能体,效果直逼 ChatGPT
aigc
离线请留言5 小时前
OpenManus+DeepSeek体验
aigc·deepseek
AntonCook6 小时前
AI工作流平台Dify本地部署
aigc·workflow
精灵vector6 小时前
【Agent的革命之路——LangGraph】如何使用config
人工智能·python·aigc
LeeZhao@8 小时前
【AGI】通往AGI的复兴号:模型工具演进与技术路径优化
人工智能·语言模型·aigc·agi
LeeZhao@8 小时前
【AGI】OpenManus 技术全景解析
人工智能·自然语言处理·aigc·agi
lisw0519 小时前
使用Galaxy创建生物信息学工作流的步骤详解
workflow·生物信息学·galaxy
草梅友仁19 小时前
Manus 与 OpenManus:AI 助手对比及开源复现 | 2025 年第 10 周草梅周报
开源·github·aigc