以下文章来源于DataSpeed ,作者张文慧
[
DataSpeed .
慢慢积累,稳稳前行,用数据说话,为成长助力
](#)
在介绍Dify之前,我们需要思考一个问题:
我们为什么需要一个Dify这样一个大语言模型应用开发平台。
你或许可以把 LangChain 这类的开发库(Library)想象为有着锤子、钉子的工具箱。与之相比,Dify 提供了更接近生产需要的完整方案,Dify 好比是一套脚手架,并且经过了精良的工程设计和软件测试。
如果你有兴趣,或者已经在用Dify了,欢迎添加作者微信,我们组织了一个Dify的互助群,欢迎来提问或者分享你的经验。
一、Dify简介
Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps[1] 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
二、Dify与大模型开发
Dify 是苏州一家公司开源的平台,因此在使用上符合国人习惯,更重要的是它完全开源,能够快速做出大模型应用的同时,还能嵌入你已有的平台。因此有很多便利。
- 创业,快速的将你的 AI 应用创意变成现实,无论成功和失败都需要加速。在真实世界,已经有几十个团队通过 Dify 构建 MVP(最小可用产品)获得投资,或通过 POC(概念验证)赢得了客户的订单。
- 将 LLM 集成至已有业务,通过引入 LLM 增强现有应用的能力,接入 Dify 的 RESTful API 从而实现 Prompt 与业务代码的解耦,在 Dify 的管理界面是跟踪数据、成本和用量,持续改进应用效果。
- 作为企业级 LLM 基础设施,一些银行和大型互联网公司正在将 Dify 部署为企业内的 LLM 网关,加速 GenAI 技术在企业内的推广,并实现中心化的监管。
- 探索 LLM 的能力边界,即使你是一个技术爱好者,通过 Dify 也可以轻松的实践 Prompt 工程和 Agent 技术,在 GPTs 推出以前就已经有超过 60,000 开发者在 Dify 上创建了自己的第一个应用。
三、Dify部署
Dify部署方式多种多样,可以简单点使用云服务,或者使用本地部署,这里简单演示一下本地docker部署方式。
安装条件
安装 Dify 之前, 请确保你的机器已满足最低安装要求:
- CPU >= 2 Core
- RAM >= 4 GiB
安装步骤
- clone dify源码
git clone https://github.com/langgenius/dify.git --branch 1.0.0 #目前最新版本
- 启动Dify
进入 Dify 源代码的 Docker 目录,复制环境配置文件,启动Docker
cd dify/docker cp .env.example .env docker compose up -d
- Dify服务
可以看到dify启动了11个服务,包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
,建议你可以找一个docker可视化页面方便管理这么多docker。
四、Dify 功能简介
本次入门篇,简单介绍dify几个常用的主要功能,会在陆续的文章里详细介绍,并且分享一些使用踩坑等经验。
4.1 接入大模型
AI相关的应用,最在意的就是大模型的接入了吧。
从模型类型上来说,Dify支持推理、嵌入、向量、语音转文本、文本转语音 共五种模型。
如,对ollama,只支持推理模型与嵌入模型,尽管ollama上也有别的模型。至于不同的模型有什么具体的区别,有必要的话,后面会单独写一篇。
添加模型的方式:
个人账号-->设置-->工作空间-->模型供应商-->选择具体的供应商-->添加连接信息,如下
在添加好具体的模型后,记得在系统模型设置里为每一种模型选择已有的模型,就可以在具体使用中用起来了。
4.2 知识库
前一阵关于大模型最火的应用,莫过于知识库了。本次先简单介绍一下使用,后面会针对dify知识库出一篇详细的介绍包含原理等内容。
知识库数据源
Dify支持多种源方式上传知识库。
- 本地上传知识库:支持批量上传txt、pdf等格式的文档,默认有大小限制。
- 导入在线数据:从Notion或网页中导入。
两种方式只能选其一,且后面无法更改。
知识库设置
从分段模式上来说,分为两种方式,通用模式VS父子模式,在索引上分为高质量与经济模式,在检索上分为向量检索、全文检索与混合检索。
分段模式核心差异
通用模式
父子模式
上下文连贯性
❌ 独立分段
✅ 父分段补充
检索精准度
中等
高 (子分段定位)
适用索引
经济/高质量
仅高质量
处理复杂度
简单
需要分层配置
索引方式对比
索引方式
技术原理
适用场景
核心功能
限制条件
高质量
使用 Embedding 嵌入模型将文本转换为向量
高精度语义匹配、多语言处理场景
支持向量/全文/混合检索,可配置 Rerank 模型,允许 Q&A 模式(仅社区版)
索引方式不可降级为“经济模式”;Q&A 模式仅支持中英日三语,消耗更多 LLM Tokens
经济
(文档未明确说明,推测为轻量化索引策略)
低成本快速检索、明确关键词场景
仅提供倒排索引方式,倒排索引仅支持 TopK设置项。
无法使用 Q&A 模式,检索精度可能较低
检索设置对比
检索类型
匹配原理
参数配置
优势
适用场景
向量检索
计算用户问题与文本向量的相似度
- Rerank 模型(可选) - TopK(默认3) - Score 阈值(默认0.5)
捕捉深层语义关联,适合模糊查询、多语言混合内容
用户提问包含复杂语义或需跨语言匹配
全文检索
关键词明文匹配(类搜索引擎)
- Rerank 模型(可选) - TopK(默认3) - Score 阈值(默认0.5)
快速定位精确术语,计算资源消耗低
用户明确知晓查询关键词或术语
混合检索
结合向量与关键词匹配,支持权重/Rerank 优化
- 权重设置(语义/关键词比例) - Rerank 模型(可选) - TopK/Score 阈值
灵活平衡精度与效率,可自定义权重适应不同业务需求
需兼顾语义理解与关键词精确匹配的复杂场景
其实在知识库的设置上还支持召回测试/引用归属,能够对知识库进行细致的调优。
知识库使用
知识库可以作为外部知识提供给大语言模型用于精确回复用户问题,你可以在 Dify 的所有应用类型[2]内关联已创建的知识库。
以聊天助手为例,使用流程如下:
- 进入 工作室 -- 创建应用 --创建聊天助手
- 进入 上下文设置 点击 添加 选择已创建的知识库
- 在 上下文设置 -- 参数设置 内配置召回策略
- 在 添加功能 内打开 引用和归属
- 在 调试与预览 内输入与知识库相关的用户问题进行调试
- 调试完成之后保存并发布为一个 AI 知识库问答类应用
4.3 工作流
工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。在日常的使用中,dify的工作流使用非常频繁,不但可以自己开发,还可以导入别人优秀的工作流,目前github上已经有很多大佬在分享工作流了,用好工作流可以使你的AI千变万化。从使用经验来说,导入别人的工作流时,需要注意版本的兼容问题。
Dify 工作流分为两种类型:
- Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
- Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
4.4 工具
工具可以扩展 LLM 的能力,比如联网搜索、科学计算或绘制图片,赋予并增强了 LLM 连接外部世界的能力。Dify 提供了两种工具类型:第一方工具和自定义工具。
你可以直接使用 Dify 生态提供的第一方内置工具,或者轻松导入自定义的 API 工具(目前支持 OpenAPI / Swagger 和 OpenAI Plugin 规范)。
- 工具使用户可以在 Dify 上创建更强大的 AI 应用,如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。
- 方便将你的应用与其他系统或服务连接,与外部环境交互,如代码执行、对专属信息源的访问等。
五、总结
Dify作为一款先进的大模型应用开发平台,其特点与优点主要体现在以下几个方面:
核心特点:
- 可视化工作流编排:Dify提供了一个直观的图形界面,允许用户通过拖拽和连线的方式构建复杂的工作流,无需深入编程知识,极大地简化了AI应用的开发流程。
- 内置RAG引擎与Agent框架:支持快速集成和配置不同的智能体(Agent)和工作流,以适应不同的应用场景,如聊天机器人、内容生成、数据分析等。
- 模型与API的广泛兼容性:Dify兼容多种大语言模型,包括但不限于OpenAI、通义千问等国内外模型,以及数百种API,为开发者提供了丰富的选择。
- 本地知识库管理:用户可以上传个人或企业的文件资料到知识库,并通过向量化处理,使得信息检索更加高效。同时,支持外部知识库的配置与使用,增加了灵活性。
- 灵活扩展与自定义:允许用户根据业务需求自定义工具和Agent的行为,适应复杂的业务逻辑和特定场景需求。
优点:
- 降低开发门槛:通过可视化工具,Dify降低了AI应用开发的复杂度,使得非专业编程人员也能快速上手,创建自己的AI应用。
- 提高开发效率:工作流的快速编排和模型的灵活配置,使得开发者能够迅速迭代和优化应用,缩短产品开发周期。
- 增强应用的智能化:通过智能体的协同工作,Dify能够实现更精细的任务分配和更智能的回答生成,提升应用的用户体验。
- 数据隐私与安全性:支持本地部署,数据处理不依赖第三方服务器,对于数据敏感的企业尤为重要,确保了数据的隐私和安全。
- 企业级应用支持:特别适合企业级应用开发,如智能客服、自动化办公流程等,能够快速响应业务需求变化,提升工作效率。
综上所述,Dify以其强大的功能、易用性、灵活性和安全性,成为开发大模型应用的优选工具,尤其适合需要快速构建和迭代AI应用的企业和个人开发者。
如果你有兴趣,或者已经在用Dify了,欢迎添加作者微信,我们组织了一个Dify的互助群,欢迎来提问或者分享你的经验。
引用链接
[1]
LLMOps: https://docs.dify.ai/zh-hans/...
[2]
所有应用类型: https://docs.dify.ai/zh-hans/...\_type
关于作者
作者重视实战与理论的结合,文章干货满满,有较为丰富的平台、数开经验,欢迎和作者一起交流,共同进步。
DataSpeed聚焦"大数据+AI"实战与资讯,技术干货和行业消息一网打尽。期待与你同行,欢迎扫码添加作者微信。
关于社区
PowerData社区是由一群数据从业人员,因为热爱凝聚在一起,以开源精神为基础,组成的数据开源社区。
社区群内会定期组织模拟面试、线上分享、行业研讨(涉及金融、医疗、能源、工业、互联网等)、线下Meet UP、城市聚会、求职内推等。同时,在社区群内您可以进行技术讨论、问题请教,届时更多志同道合的数据朋友。
社区整理了一份每日一题汇总及社区分享PPT,内容涵盖大数据组件、编程语言、数据结构与算法、企业真实面试题等各个领域,帮助您自我提升,成功上岸。可以添加作者微信(zwhuihuiz),进入PowerData官方社区群。
往期推荐
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。