Dify工作流使用教程实战指南:从零搭建生产级AI应用的可视化编排全攻略
Dify作为开源LLM应用开发平台,正在重塑AI应用的生产方式。通过可视化的拖拽式工作流编排,原本需要数周开发的AI应用(如智能客服、内容生成器)现在可以在几分钟内搭建完成,开发效率提升60%以上。2026年3月,Dify全球开发者社区已超过50万,企业用户涵盖金融、电商、教育等多个行业。本文将手把手带你从创建工作流画布开始,逐步掌握LLM节点配置、工具集成、条件分支等核心技能,并通过电商智能客服、AI视频生成两个完整案例,帮助你快速成为Dify工作流开发达人。
一、初识Dify:可视化工作流为何成为AI应用开发新范式?
在生成式AI技术快速演进的背景下,企业和开发者面临三大核心挑战:模型训练成本高昂、应用开发周期冗长、生产环境运维复杂。Dify作为开源的LLM应用开发平台,通过提供标准化开发范式和可视化工具链,正在有效降低这些技术门槛。
1.1 Dify的核心价值
Dify采用微服务架构设计,主要包含工作流引擎、模型服务层、数据管理模块三大组件。其核心价值体现在三个方面:

- 开发效率提升:通过可视化工作流编排替代传统代码开发,使应用构建周期缩短60%以上
- 资源优化配置:支持多模型动态调度,实现GPU资源的最大化利用
- 生产级保障:内置完善的监控告警体系和版本管理机制,确保应用稳定性
1.2 可视化工作流的核心概念
Dify的拖拽式工作流设计器采用节点-边模型,支持六类核心节点:
- 数据输入节点:支持JSON/CSV/文本等多种格式,内置数据清洗转换功能
- 模型处理节点:可配置多模型路由策略,支持动态参数传递
- 逻辑控制节点:包含条件分支、循环迭代等流程控制结构
- 输出处理节点:支持多格式输出和自定义响应模板
- 外部服务节点:可集成对象存储、消息队列等云服务
- 调试监控节点:实时显示节点执行状态和性能指标
典型工作流构建流程可以用以下图示表示:
数据输入 → 数据校验 → 模型推理 → 结果后处理 → 输出返回
↓
异常处理
1.3 适用场景
Dify的工作流能力可以应用于多种场景:
- 智能客服系统:结合RAG架构,实现意图识别、知识库查询、个性化回复
- 内容生成应用:多步骤的内容创作,如作业批改、报告生成、知识卡片制作
- 多模态应用:结合ComfyUI等工具,实现从文本到图片/视频的端到端生成
- 数据分析助手:连接数据库,实现自然语言查询和数据可视化
二、快速上手:Dify环境搭建与基础配置
在开始创建工作流之前,你需要完成Dify的部署和基础配置。Dify支持云端托管和本地部署两种方式,本文以本地部署为例进行说明。
2.1 部署Dify
依次执行以下命令即可完成Dify的本地部署:
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
部署完成后,访问 http://<ip地址>/install 注册用户并登录。IP地址为运行Dify的服务器IP地址。
对于基础演示或开发环境,建议选择单机版模板,实例类型可选择 ecs.u1-c1m2.xlarge 或类似配置。
2.2 接入大模型
登录Dify后,需要配置大模型供应商:
- 鼠标悬浮于右上角头像处,单击“设置”
- 单击左侧导航栏的“模型供应商”,选择并安装所需的模型供应商(如OpenAI、千问、Claude等)
- 安装完成后,在待配置区域找到对应模型,单击“设置”,输入API Key并保存
提示:如需使用支持Function Calling的模型(如MaaS平台部署的模型),需要在配置时开启“Function calling”功能。Dify支持“OpenAI-API-compatible”供应商,可灵活接入各类模型。
2.3 创建工作流画布
登录Dify控制台后,进入“工作室”模块,点击“创建工作流”。你会看到一个空白的画布界面,左侧是节点库,中间是设计区域。
关键操作:
- 从左侧拖拽“开始”节点到画布,这是工作流的入口
- 点击画布空白处,可以在右侧面板中设置工作流名称和描述
- 建议为工作流添加清晰的描述,便于后期维护
实用技巧:在开始设计复杂流程前,先用纸笔勾勒大致步骤,可以显著提高设计效率。
三、核心功能实战:从基础节点到完整工作流
掌握了基础操作后,我们来系统学习Dify工作流的核心节点配置。
3.1 基础节点配置详解
3.1.1 LLM节点配置
LLM节点是工作流的核心,用于调用大语言模型进行推理。从节点库的“AI模型”类别中拖拽“LLM”节点到画布,与“开始”节点连接后,需要进行关键配置:
- 选择模型提供商:根据需求选择OpenAI、Anthropic或本地部署的模型
- 配置API参数:输入API密钥,调整温度(Temperature)和最大生成长度
- 设计提示词模板:这是核心步骤。例如,创建天气查询助手时,可以输入:
请根据用户的问题提取地理位置信息。 用户问题:{{query}} 只返回城市名称,不要添加任何解释。
3.1.2 工具节点配置
从“工具”类别拖拽“HTTP请求”节点到画布,并与LLM节点连接:
- 配置API端点:输入目标工具的API地址
- 设置请求参数:将LLM节点的输出作为变量插入请求参数中
{ "city": "{{llm_output}}", "units": "metric" } - 处理响应数据:使用JSONPath提取需要的数据,如
$.temperature
3.1.3 逻辑控制节点
在构建复杂应用时,条件分支节点至关重要。例如,可以在HTTP请求节点后添加条件判断,检查数据有效性:
- 条件1:数据有效(如温度存在)→ 进入文本生成节点
- 条件2:数据无效(如城市不存在)→ 进入错误处理节点
3.2 案例实战一:电商智能客服系统
本文以在线服装店为例,详细介绍如何构建一个能处理售后咨询、查询订单信息的AI客服系统。该系统可以处理售后咨询、获取订单信息并生成个性化回复,从而减轻人工客服压力,提升响应速度和客户满意度。
3.2.1 系统架构设计
该客服系统的核心优势包括:
- 数据驱动的精准回复:AI基于Supabase中真实、结构化的订单和物流数据生成回复,确保信息准确无误
- AI理解:AI不仅读取数据,还能分析客户意图和情绪,主动安抚客户
- 高效自动化处理:传统客服需手动查系统再打字回复,而Dify+Supabase组合实现了秒级自动化响应
3.2.2 步骤一:配置Supabase
在Dify界面安装Supabase插件,作为外部存储:
- 单击右上角的“插件”,然后单击左侧的“搜索Marketplace”
- 搜索“supabase”,根据提示完成安装
- 获取Supabase项目的URL和service role key,在插件中完成授权配置
准备测试数据:创建orders表并插入测试数据
CREATE TABLE IF NOT EXISTS orders (
order_id TEXT PRIMARY KEY, --订单号
customer_name TEXT NOT NULL, --用户姓名
product_name TEXT NOT NULL, --商品名称
product_size TEXT NOT NULL, --商品尺码
current_status TEXT NOT NULL, --物流状态
last_updated TIMESTAMP WITH TIME ZONE NOT NULL, --最后一次更新时间
estimated_delivery DATE --预计送达日期
);
INSERT INTO orders VALUES (
'ORD12345',
'张***',
'法式复古蓝色连衣裙',
'M',
'已到达【杭州市】分拨中心,等待发往【宁波市】',
'2025-08-16 14:20:00+08',
'2025-08-20'
);
3.2.3 步骤二:创建工作流
在Dify界面,单击上方的工作室>Chatflow,然后创建应用。按照以下流程配置节点:
问题分类器节点:配置三个问题分类——“物流”、“颜色”和“尺寸”,用于识别用户咨询的类型。以“物流”分类为例,后续节点配置如下:
| 节点 | 配置信息 |
|---|---|
| 参数提取器 | 输入变量:sys.query提取参数:名称 order_id,类型String描述:客户的订单号,必须是以"ORD"开头的字母数字组合,例如ORD12345, ORD67890。只提取符合此格式的字符串。 |
| GET ROWS | 工具>Supabase>Get Rows 输入变量:Table Name: orders,Filter: order_id |
| 模板转换 | 输入变量:选择Get Rows下的json |
| LLM | 上下文:选择模板转换下的output SYSTEM提示词: 使用以下上下文作为你所学习的知识,放在<context></context> XML标签内。<context>{{上下文}}</context>当回答用户时:如果你不知道,就说你不知道。避免提及你从上下文中获取的信息。并根据用户问题的语言进行回答。 |
| 直接回复 | 回复内容:选择LLM下的text |
3.2.4 测试示例
用户问题:
> “你好,我订单号 #ORD12345 的那件连衣裙,物流没更新了,急着穿,什么时候能到?会不会丢件了”
AI回复:
> “您好,关于您的订单 #ORD12345,目前物流状态显示商品已到达杭州市分拨中心,预计将在 2 天内送达宁波市。请您放心,商品在运输过程中有完善的追踪系统,不会丢失。我们建议您保持关注物流信息,如有任何异常我们将第一时间通知您。”
3.3 案例实战二:AI视频生成工作流
除了文本应用,Dify还可以通过集成外部服务实现多模态内容生成。本案例演示如何调用PAI-EAS部署的ComfyUI服务,实现从文本到视频的端到端生成。
3.3.1 方案概述
本方案的核心是利用Dify作为应用编排器,调用部署在PAI-EAS上的ComfyUI推理服务。由于ComfyUI的推理任务是异步执行的,整个调用链路如下:
- 提交任务:Dify向EAS服务发送POST请求,请求体中包含ComfyUI工作流的JSON描述。EAS接收任务后,立即返回唯一的
prompt_id - 轮询状态:Dify使用
prompt_id循环查询任务执行状态 - 获取结果:任务成功后,获取生成文件的OSS路径,拼接为可访问的链接展示给用户
3.3.2 关键节点配置
环境变量设置:配置OSS_URL、EAS_Token、EAS_URL三个环境变量
开始节点:将正反向提示词等动态参数设为变量,供每次调用时输入
POST请求节点(获取Prompt ID):
- 请求地址:
{{EAS_URL}}/prompt - 请求体:导出的ComfyUI工作流JSON,将需要动态修改的参数替换为Dify变量
- 结果提取:使用代码节点从返回结果中提取
prompt_id
轮询逻辑节点:
- 使用
prompt_id循环发起GET请求(地址:{{EAS_URL}}/history/{{prompt_id}}) - 在每次轮询之间插入代码节点执行
time.sleep(12),避免请求过于频繁 - 当返回结果中包含
prompt_id时,表示推理已完成
结果处理节点:
- 从最终结果中提取生成的文件名
- 与环境变量OSS_URL拼接,形成可公开访问的文件链接
- 在Dify的“结束”节点中展示结果
四、智能体开发与提示词优化
当工作流需要更灵活的决策能力时,可以引入智能体(Agent)模式。Dify支持将工作流升级为智能体,通过Function Calling能力调用外部工具。
4.1 配置Function Calling模型
在Dify中配置支持Function Calling的模型:
- 进入“设置”>“模型供应商”,找到“OpenAI-API-compatible”供应商
- 单击“添加模型”,配置模型名称、API Key、API Endpoint URL
- 将“Function calling”设置为“Tool Call”模式
4.2 创建Agent应用
在Dify中创建Agent应用,进行如下设置:
- 在右上角单击“Agent设置”,选择上一步配置好的模型
- Dify会自动将Agent Mode切换到Function Calling模式
- 在“编排”页面的“提示词”文本框输入系统提示词,例如:
你是一位乐于助人的AI助手。在回答用户问题时,你需要: 1. 始终使用自然语言解释你将要采取的行动 2. 在调用工具之前,说明你要使用哪个工具以及原因 3. 在获取信息的过程中,清晰地描述你正在做什么 4. 永远不要返回空的回复 - 确保用自然语言解释你的每个步骤 - 在“工具”区域添加所需工具(支持Dify内置插件和自定义工具)
4.3 提示词工程优化方法论
高质量的提示词是智能体成功的关键。提示词设计应遵循“3C原则”:
- Clarity(清晰性):使用明确的结构化指令
- Context(上下文):提供充分的领域知识
- Constraint(约束性):限定输出格式和范围
优化实践技巧:
| 技巧 | 说明 | 示例 |
|---|---|---|
| 角色扮演法 | 通过As a [role], you should...明确智能体身份 |
“作为专业产品顾问,你需要…” |
| 示例引导法 | 提供3-5个高质量示例 | 展示理想回复的格式和内容 |
| 分步拆解法 | 将复杂任务分解为多个子步骤 | 1.识别需求 2.检索知识库 3.格式化回复 |
| 参数控制法 | 使用temperature、top_p调节生成效果 | 客服场景用低温度,创意场景用高温度 |
五、Dify方法论:五步构建生产级AI应用
结合多个成功案例,我们可以总结出在Dify中构建AI应用的“五步法”:
5.1 第一步:明确需求
梳理应用的核心功能。以某教育机构希望开发的“智能作业批改”应用为例,核心功能包括:
- 接收学生提交的作业图片
- 识别图片中的数学公式和文字
- 将识别结果与标准答案比对
- 生成批改报告(含得分、错题解析)
5.2 第二步:设计工作流
在Dify中创建工作流,并添加以下节点:
- 数据输入节点:支持图片上传(可通过Web表单或API接入)
- OCR识别节点:调用第三方OCR服务提取文字和公式
- 公式解析节点:使用数学解析库将公式转换为可计算格式
- 答案比对节点:调用预置的数学计算模型,对比学生答案与标准答案
- 报告生成节点:根据比对结果生成结构化报告
- 数据输出节点:将报告返回给学生或教师
5.3 第三步:配置节点参数
为各节点设置具体参数:
- OCR识别节点:选择“数学公式识别”模式,设置输出格式为JSON
- 公式解析节点:上传LaTeX解析规则库,定义常见数学符号的转换逻辑
- 答案比对节点:设置容错阈值(如允许计算结果误差±5%),避免因格式差异误判
- 报告生成节点:自定义模板,突出显示错题步骤和解析建议
5.4 第四步:测试优化
通过“调试模式”上传测试作业图片,检查各节点输出:
- 若OCR识别错误,需调整图片清晰度要求或更换OCR服务
- 若公式解析失败,需补充规则库中的符号定义
- 若报告格式混乱,需优化模板中的变量引用逻辑
5.5 第五步:部署应用
将工作流部署为Web服务,生成调用链接。通过Dify的监控看板观察应用运行情况,例如每日处理量、平均响应时间等。
六、生产环境部署最佳实践
6.1 资源规划建议
根据应用规模,推荐以下资源配置:
- 开发环境:2核4G + 16GB显存
- 测试环境:4核8G + 32GB显存
- 生产环境:8核16G + 64GB显存(根据并发量调整)
6.2 监控体系构建
建议监控以下指标:
- 基础指标:QPS、响应时间、错误率
- 模型指标:置信度分布、输出长度统计
- 业务指标:任务完成率、用户满意度
6.3 安全性建议
- API密钥管理:使用环境变量存储敏感信息,避免硬编码
- 访问控制:在生产环境中,将OSS Bucket等资源设置为私有,限制只允许特定IP或VPC访问
- 数据隔离:不同用户的会话数据使用独立的存储空间
6.4 成本优化
- 轮询间隔设置:合理设置轮询的等待时间。过短的间隔会增加API调用次数和服务器负载,可能产生不必要的费用;过长的间隔则会增加用户的等待时间。建议根据任务的平均耗时进行调整。
- 缓存策略:对高频查询配置多级缓存策略,提升响应速度
七、结语:从工作流到智能体的进化之路
Dify作为新一代LLM应用开发平台,通过标准化工具链和可视化界面,正在重塑AI应用开发范式。从本文的案例可以看出,无论是简单的天气查询助手,还是复杂的电商客服系统、AI视频生成应用,都可以通过Dify的工作流快速实现。
对于希望快速构建生产级AI应用的团队,建议从基础工作流编排入手,逐步掌握智能体开发和提示词优化等高级技能。随着平台生态的持续完善,开发者将获得更丰富的组件库和更强大的扩展能力,加速AI技术的落地应用。
Dify的价值不仅在于降低开发门槛,更在于让开发者能够将更多精力聚焦在业务逻辑和用户体验上,而非底层的技术细节。正如一位资深开发者所言:“Dify让我从‘怎么调通API’的泥潭中解放出来,真正开始思考‘我的用户需要什么’。”
现在,登录你的Dify控制台,从创建一个简单的工作流开始,开启你的AI应用开发之旅吧。
❓ 常见问题解答(FAQ)
Q1:Dify是免费的吗?有哪些收费模式?
A: Dify本身是开源的,可以免费本地部署。如需使用云服务,Dify Cloud提供免费版和付费套餐,免费版有一定的使用额度限制。企业用户可选择私有化部署或企业版套餐。
Q2:我没有编程基础,能用Dify创建工作流吗?
A: 完全可以。Dify的核心优势就是可视化拖拽式编排,无需编写代码即可完成工作流搭建。只需理解基本逻辑(如输入→处理→输出),按照本文的步骤操作即可。当然,如需配置复杂的HTTP请求或自定义代码节点,可能需要基础的API知识。
Q3:Dify支持哪些大模型?
A: Dify支持主流的模型供应商,包括OpenAI、Anthropic、Azure、Google Gemini、千问、文心一言等。同时支持通过“OpenAI-API-compatible”配置接入任何兼容OpenAI接口的模型。
Q4:如何解决工作流执行中的错误?
A: 可以采取以下步骤:
- 逐节点检查:点击每个节点查看输入输出,定位出错节点
- 常见问题处理:
- API密钥错误:检查是否复制完整
- 格式错误:确认JSON结构符合工具要求
- 超时问题:适当调整超时设置
- 查看日志:通过日志分析定位问题,例如发现某节点频繁超时后,可优化模型选择或增加缓存
Q5:Dify工作流中的变量如何使用?
A: 变量用双大括号表示,如{{query}}。变量可以来自用户输入、上一节点的输出或环境变量。在节点配置中可以直接引用变量,Dify会在执行时自动替换为实际值。
Q6:工作流可以导出和分享吗?
A: 可以。Dify支持将工作流导出为DSL文件(YAML格式),也可以从DSL文件导入。这使得工作流可以版本控制、分享给团队成员或在不同环境间迁移。
Q7:Dify的Chatflow和Workflow有什么区别?
A: Chatflow专为对话场景设计,支持多轮对话记忆和上下文管理,适合构建聊天机器人、客服系统等。Workflow更通用,适合一次性任务处理,如批量生成报告、数据批处理等。
Q8:如何将Dify应用集成到现有系统?
A: 工作流发布后,Dify会生成API端点。你可以通过HTTP请求调用该API,传入参数并获取结果。这种方式可以轻松将Dify应用嵌入到现有Web系统、小程序或移动应用中。
Q9:Dify支持多轮对话吗?
A: 支持。在工作流中添加“记忆”节点,可以让AI记住对话上下文,实现多轮对话能力。在Chatflow模式下,系统会自动维护对话历史。
Q10:Dify社区活跃吗?遇到问题如何求助?
A: Dify拥有活跃的开发者社区,GitHub仓库已获得数万星标。你可以在GitHub Issues提交问题,加入Discord或Slack社区与其他开发者交流,或查阅官方文档获取帮助。</ip地址>

