基于Dify“拖拉拽”可视化创建个Rag知识库

187 阅读8分钟

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

Dify功能介绍

Dify 是一个开源的低代码 / 无代码 AI 应用开发平台,由 langgenius 团队开发,遵循 Apache 2.0 许可证。其核心理念是 “Define Your AI”,即让用户通过直观的可视化界面,定义和构建专属的 AI 应用,无需深入的编码经验。它结合了 Backend-as-a-Service(BaaS)和 LLMOps(大语言模型运维)的理念,提供了一个端到端的开发环境,涵盖数据管理、模型调用、工作流设计、插件集成和应用发布。

Dify 具有以下主要功能:

  • 可视化工作流编排

    用户可以通过拖放节点的方式,轻松搭建复杂的 AI 流程,如 “上传合同 PDF→自动摘要→邮件发送” 等,全程无需编写代码。还支持实时调试节点,方便用户像搭积木一样设计 AI 逻辑,新手也能快速上手。如本篇就是对Rag知识库工作流编排(开始- 知识库-LLM大模型-直接回复)

  • RAG 知识库引擎

    用户可以直接上传产品手册、行业报告等文档,Dify 会自动将其向量化,构建专业的问答库。其回答精准到段落,在实测的法律咨询场景中,比传统检索准确率提升 70%。如,可使用词嵌入模型(本地部署下载即可),直接进行文本内容上传

  • 多模型无缝切换

    Dify 支持一键切换 40 多种模型,用户可以根据需求选择本地部署的模型如 ChatGLM 以节省成本,也可以选择高性能的 GPT-4-turbo 等模型来处理复杂任务,还支持 Azure/DeepSeek 等企业级 API。

  • Agent 智能体工厂

    用户可以自定义工具链和任务规划,为 AI 装上 “手脚”。例如,让 Agent 先查询天气,然后生成出行攻略,最后发送到微信群,实现复杂任务的自动化。Dify 内置了 50 多种工具。如可支持MCP协议通过AI网关调用其他系统API

  • 企业级私有部署

    Dify 开源版支持 Docker 本地部署,全程内网运行,适合金融、医疗等对数据安全要求较高的行业。同时,它还能集成 CRM、ERP 系统,让企业无需担心数据泄露问题。如本篇就是讲解使用Docker安装dify

  • 全链路 LLMOps

    Dify 提供了从日志监控到提示词优化的全链路 LLMOps 功能,用户可以实时查看模型的性能指标,如延迟、错误率等,并通过标注优质回答反馈至 Prompt,形成 “开发 - 部署 - 迭代” 的闭环。

  • 集成支持

    Dify 支持 30 多种 LLM 和 50 多种工具,通过 OpenAPI 和 MCP 简化集成。它还提供向导式开发、模板库和交互式教程,降低了用户的上手时间。如各种插件支持

  • 安全合规

    Dify 具备 RBAC 权限控制、AES-256 加密、审计日志等功能,满足 GDPR/HIPAA 等安全合规要求。

Dify 的核心优势在于以低代码可视化方式,让开发者和非技术人员都能快速构建、部署和迭代企业级 AI 应用(如 RAG 知识库、智能 Agent 等),同时无缝集成多模型、向量数据库和工具链,兼顾灵活性、安全性与易用性

Dify环境搭建


本篇是MAC上安装Docker容器部署了Dify,然后启动即可。在编排Rag知识库时,使用Ollama本地部署大模型DeepSeek-R1、文本潜入模型nomic-embed-text。关于Ollama安装和大模型部署方法,前篇文章有介绍读者可自行翻阅基于DeepSeek手搓一个Rag知识库(手把手,个人电脑也能玩哦),这里不再赘述。

  • Docker安装

首先,这里先讲述Docker容器的安装,打开官网,Docker安装链接

docs.docker.com/desktop/set… 笔者这里是MAC M4芯片,读者可根据自己PC配置,自行选择安装即可

下载完成,直接点击下载docker.dmg文件正常安装(安装过程中,可不用注册)。

其次,配置镜像源,国内用户可以配置国内镜像源加速访问:

打开 Docker Desktop,进入设置→ Docker Engine

在配置文件中添加国内镜像源(这一步很重要,否则下载不到镜像,亲测有效复制可用):

{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://dockerpull.org",
"https://docker.1panel.dev",
"https://docker.foreverlink.love",
"https://docker.fxxk.dedyn.io",
"https://docker.xn--6oq72ry9d5zx.cn",
"https://docker.zhai.cm",
"https://docker.5z5f.com",
"https://a.ussh.net",
"https://docker.cloudlayer.icu",
"https://hub.littlediary.cn",
"https://hub.crdz.gq",
"https://docker.unsee.tech",
"https://docker.kejilion.pro",
"https://registry.dockermirror.com",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://docker.nastool.de",
"https://docker.udayun.com",
"https://docker.rainbond.cc",
"https://hub.geekery.cn",
"https://docker.1panelproxy.com",
"https://atomhub.openatom.cn",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.linkedbus.com"
]
}
  • Dify安装

打开mac终端,执行指令,克隆 Dify 代码仓库,克隆 Dify 源代码至本地环境。

切换到存储dify目录,执行如下命令,拉去dify代码(如果网络不通,可能前面镜像源没配置)

git clone https://github.com/langgenius/dify.git

下载完成后,切换切换到dify源码的docker目录下,执行以下命令:

cd dify/docker
cp .env.example .env

然后,启动dify docker容器

docker compose up -d

启动成功

在浏览器中输入 http://localhost/install ,进入dify主界面

Dify搭建RAG知识库


Rag系统核心原理简单可以理解三部分:

  • 数据准备:支持多格式文档(PDF、Word、网页等)的解析与分段处理,使用BERT、Sentence-BERT等生成嵌入模型将文档转换为向量,确保语义完整性,存储于向量数据库(如Milvus、Pinecone、chroma,目前国产数据库也有向量数据库)
  • 数据检索:为了快速的在向量数据库中找到与问题相关的文本块,用户输入的问题也需要经过生成嵌入模型(这里必须使用与文本块转换相同的生成嵌入模型)转化为嵌入向量,在检索时,从而可与向量库中的向量相互匹配(计算余弦相似度),返回Top-K相关文档。
  • LLM生成环节:生成模块基于检索内容生成答案,并通过重排序(Rerank)机制优化结果相关性。将检索结果与用户问题拼接为增强提示词(Prompt),输入LLM生成最终答案。

这部分主要讲解在“工作室”的chatflow创建一个空白应用来创建一个Rag知识库。一个Rag知识库,最关键由4部分构成:

  • 使用Dify工作流的编排
  • 知识库(这里直接使用dify内置向量数据库默认支持 Weaviate)
  • 下载deepseek-r1和嵌入模型
  • 下载Ollama,用来本地部署deepseek-r1和嵌入模型

首先,创建一个空白应用,选取Chatflow支持记忆的复杂多轮对话工作流,取个名字,创建即可。如图:

其次,开始编排Rag节点 “+”添加节点,依次拖拽开始-知识检索-LLM(大语言模型)-直接回复。四个节点进行拖线链接。

再次,对每个节点(开始-知识检索-LLM(大语言模型)-直接回复)进行属性配置。

  • 知识检索属性配置:命名、索引模式选择高质量,选择embeding嵌入模型,Rerank排名,Top K返回条数的数量等属性后,直接上传文档。

点击添加文件,支持很多中文档类型(本文上传的是一篇介绍dify的文档)

知识库创建完成。RAG(Retrieval-Augmented Generation,检索增强生成)原理就是一种将传统信息检索统与大语言模型相结合的技术架构。用户提问时,系统先从知识库(刚上传的text等文档,在向量数据库内)中检索(使用余弦相似度,找出相似内容)相关内容取top K条记录,检索出内容进行算法排序ReRank,再结合这些检索结果利用大模型LLM总结、归纳和润色等生成人类可理解的自然语来回答。

  • LLM属性配置:
  • 下载ollama(本地部署deepseek的工具)

    选择用户设置-模型供应商,搜索ollama安装完成,然后在模型列表下选择添加模型,分别安装deepseek-r1 和 嵌入模型nomic-embeded-text按照要求安装就好。安装好配置LLM参数,如图:

最后,任务编排时,各个节点除了连线串起来,还要有变量的传递,让整个工作流内容流转。

【开始】创建一个input变量,如图:

【知识检索】上述input变量作为【知识检索】的输入,其检索结果自动生成result变量

【LLM】使用上述【知识检索】的result结果作为【LLM】的“上下文”输入变量,SYSTEM填写提示词,这里是“dify是可视化ai开发框架”

【直接回复】让【LLM】的结果直接输出

以上配置好,点击发布测试问答:

开始测试:

RAG参考笔者上传的关于dify的知识内容,回答还算准确(注:这里不是联网的大模型,是本地部署没有特殊训练的通用大模型)RAG 知识库的核心优点是通过将用户问题与私有 / 专业文档的向量检索结果结合,让大模型基于特定领域知识生成精准、可控且最新的回答,解决通用模型 “知识滞后”“虚构信息” 和 “私有数据不可知” 问题

写在最后

本文介绍dify功能,docker容器快速安装dify,然后以搭建Rag为例熟悉各个功能,dify是可视化编排聊天助手,Rag知识库、人工智能体的低代码平台 ,上手更快。人工智能无疑是一场革命,学会与AI为伍,跟上时代的步伐,一同前往,别掉队。共勉!

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI