QDKT3-7-Dify的应用类型和工作流节点详解
工作室支持创建多种应用,核心分为两大类:Chatflow 和 Workflow,另有三种新手试用类型(聊天助手、Agent、文本生成应用),本质是前两者的简化版本。所有应用的搭建均依赖节点串联,以下是零基础必掌握的核心节点,包含功能、操作步骤和使用场景。解决方案:搭配具备视觉理解的大模型节点(如 VL 模型),先识别图片中的文本,再进行提取。解决方案:确保直接回复节点与大模型节点直接连接,中间无其
一、Dify 平台主界面核心区域解析
Dify 平台主界面上方包含四个核心 Tag 区域,是所有操作的基础入口,需先熟练掌握各区域功能及使用场景。
1.1 探索(Explore)区域
- 核心功能:内置官方预设的现成工作流,支持直接添加到个人工作区,可用于学习参考或二次改造。
- 关键操作:
- 添加工作流:找到感兴趣的工作流,点击“添加到工作区”,按提示安装所需插件即可。
- 语言切换(解决中文显示 bug):点击【设置】→【语言】→ 先切换为英语,再次点击切换回中文,刷新后工作流将显示为中文版本。
- 自定义改造(企业场景):技术人员可通过修改源代码中的 DSL 配置,替换为企业内部定制的工作流(需专业开发支持)。
- 注意事项:默认工作流为英文,必须通过上述 bug 修复步骤切换中文,否则可能影响理解。
1.2 工作室(Workspace)区域
- 核心功能:存储、编辑和运行所有自定义创建的 DSL 工作流,是课程重点学习区域。
- 关键特性:
- 支持两种核心应用类型:Chatflow(对话式工作流)和 Workflow(纯工作流)。
- 所有节点配置、流程串联均在此区域操作,后续节点学习将围绕此展开。
1.3 知识库(Knowledge Base)区域
- 核心功能:关联 RAG(检索增强生成)系统,用于搭建专属知识库(如企业文档库、问答库)。
- 学习说明:本区域功能庞大,将在后续专门的 RAG 章节详细讲解,本节暂不展开。
1.4 工具(Tools)区域
- 核心功能:集成插件系统,包含社区开发的各类工具(如钉钉/企微连接、数据分析、格式转换等)。
- 关键操作:
- 插件安装:
- 本地部署用户:点击右上角【插件】→【探索 Marketplace】,进入本地插件市场搜索安装(如 Markdown 转换器)。
- 云端部署用户:直接在【BYTE 市场】中安装云端插件(注意:本地与云端插件不互通,需对应部署环境安装)。
- 插件使用:安装完成后,可在工作室的工作流画布中直接调用。
- 常见问题:
- 安装失败:可能是网络问题、版本不兼容(当前版本 1.9 可能与部分插件冲突,可尝试安装更早版本)。
- 插件查找:市场显示不全时,使用搜索功能精准查找(如搜索“Markdown”快速定位格式转换工具)。
二、核心应用类型详解
工作室支持创建多种应用,核心分为两大类:Chatflow 和 Workflow,另有三种新手试用类型(聊天助手、Agent、文本生成应用),本质是前两者的简化版本。
2.1 两种核心应用类型对比
|
应用类型 |
交互形式 |
核心特性 |
适用场景 |
|
Chatflow(对话式工作流) |
聊天界面,用户输入文本后实时响应 |
支持多轮对话记忆、中间节点数据输出、流式输出 |
智能客服、对话机器人、交互式查询 |
|
Workflow(纯工作流) |
表单式交互,支持文本输入、附件上传 |
支持批量运行(上传 Excel/CSV 批量处理)、无对话记忆 |
数据批量处理、文件转换、固定流程自动化 |
2.2 三种新手试用应用类型
2.2.1 聊天助手
- 本质:Chatflow 的简化版本,仅支持预设提示词,无复杂节点配置。
- 操作步骤:创建后在提示词框中输入预设指令(如“作为旅游助手,回答用户出行问题”),发布后即可通过聊天界面交互。
- 特点:交互逻辑与 Chatflow 一致,适合快速搭建简单对话工具。
2.2.2 文本生成应用
- 本质:Workflow 的简化版本,仅支持单个预设提示词,无多节点串联。
- 操作步骤:预设提示词(如“将输入文本转换为学术论文摘要”),通过变量引入用户输入,发布后用户提交内容即可生成结果。
- 特点:适合单一格式转换、内容生成场景,操作极简。
2.2.3 Agent(智能体)
- 本质:聊天助手的增强版本,新增工具调用能力(非真正独立执行任务的智能体)。
- 核心差异:支持配置第三方工具(如代码解释器、API 调用),通过 Function Call 实现工具触发。
- 操作步骤:
- 创建 Agent 应用,进入工具配置界面。
- 选择所需工具(需提前在插件市场安装),编辑工具描述(说明工具用途、输入输出格式)。
- 配置 Agent Model,启用 Function Call 功能。
- 注意事项:当前版本 Agent 策略不成熟,耗 Token 较多,复杂功能可通过 Chatflow 搭配工具节点实现。
三、基础核心节点详解(必学)
所有应用的搭建均依赖节点串联,以下是零基础必掌握的核心节点,包含功能、操作步骤和使用场景。
3.1 开始节点(Start)
- 核心功能:定义应用的输入来源和初始配置,是所有工作流的起点。
- 关键配置:
- 输入字段设置:
- 文本:单行输入,最长 256 字符(不可换行)。
- 段落:多行输入,最长 2000 字符(支持换行)。
- 文件上传:在【功能】→【文件上传】中开启,可配置支持的文件类型(图片、文档、音频等)。
- 开场白设置:【功能】→【开场白】中添加默认话术(如“你好,欢迎咨询!”)和快捷选项(如“介绍一下你自己”)。
- 变量定义:系统默认提供 user input(用户输入)、files(上传文件)等变量,支持自定义变量名称和类型。
3.2 大模型节点(LLM)
- 核心功能:调用 AI 模型处理输入内容,支持提示词配置、多轮记忆、结构化输出等。
- 关键配置:
- 模型选择:默认提供多种模型(如千问 Plus),可通过【显示模型】关闭无用模型,提高配置效率。
- 系统提示词:设置模型的基础行为(如“始终使用文言文回复”“禁止生成敏感内容”)。
- 记忆窗口:开启后支持多轮对话记忆,设置数字为记忆轮数(如设置 5 则记住前 5 轮对话内容)。
- 结构化输出:
- 点击【结构化输出】→【添加字段】,设置字段名(如 name)、类型(如字符串、数字)。
- 系统自动将结构化要求写入提示词,模型将按指定格式输出(如 JSON)。
- 异常处理:配置模型运行失败时的默认输出(如“模型暂时无法响应,请稍后再试”),或跳转至其他分支(如切换备用模型)。
- 其他优化:失败重试(设置重试次数和间隔)、推理标签分离(仅部分模型支持,分离思考过程和最终答案)。
3.3 直接回复节点(Direct Response)
- 核心功能:输出工作流结果,支持流式输出和变量引用。
- 关键特性:
- 流式输出:仅当直接连接大模型节点时生效,结果将逐字显示(模拟实时对话)。
- 变量引用:点击右上角【{}】图标,选择需输出的变量(如大模型的 text 输出、用户输入的 user input)。
- 注意事项:若中间穿插其他节点(如代码执行、模板转换),则无法使用流式输出,需等待全量结果生成。
四、进阶功能节点详解(常用)
掌握基础节点后,可通过进阶节点实现复杂逻辑(如条件判断、数据处理、循环迭代)。
4.1 条件分支节点(Condition Branch)
- 核心功能:基于关键词或数值条件,让工作流走不同分支(类似“if-else”逻辑)。
- 操作步骤:
- 添加条件分支节点,点击【添加条件】。
- 选择判断变量(如 user input),设置判断规则:
- 文本类型:包含/不包含指定关键词(如“你好”“价格”)。
- 数字类型:等于/不等于/大于/小于指定数值(如年龄>18)。
- 布尔类型:是/否(如文件已上传)。
- 为每个条件配置对应的后续节点(如包含“价格”则跳转至售前咨询分支)。
- 使用场景:客服分流(售前/售后/投诉)、数据筛选(如筛选成年用户)。
4.2 问题分类器节点(Question Classifier)
- 核心功能:基于大模型的语义理解,自动对用户问题分类(比条件分支更灵活,无需手动设置关键词)。
- 操作步骤:
- 添加问题分类器节点,设置分类标签(如“售前问题”“Bug 反馈”“其他”)。
- 高级配置(可选):补充分类说明(如“询问产品功能、价格属于售前问题;反馈系统报错属于 Bug 反馈”)。
- 为每个分类配置分支节点(如 Bug 反馈分支连接工单创建工具)。
- 注意事项:必须添加“其他”分类作为兜底,避免未匹配到分类导致流程卡住。
4.3 代码执行节点(Code Execution)
- 核心功能:在内置沙盒(支持 Python3 和 JavaScript)中运行代码,实现自定义数据处理(如变量拼接、计算、格式转换)。
- 关键配置:
- 语言选择:Python 或 JavaScript。
- 代码编写:定义 main 函数,接收输入参数(arg1、arg2 等),返回处理结果。
- 示例代码(Python):
|
Python |
- 操作步骤:
- 添加代码执行节点,选择语言并编写代码。
- 绑定输入变量(如 arg1 绑定 user input,arg2 绑定自定义变量)。
- 运行后,输出结果可作为后续节点的输入。
- 实用技巧:若不会编写代码,可使用 Deepseek 等 AI 工具生成代码片段,直接复制粘贴。
4.4 模板转换节点(Template Conversion)
- 核心功能:简化代码执行的变量拼接逻辑,无需编写代码,直接通过模板语法组合变量。
- 操作步骤:
- 添加模板转换节点,绑定输入变量(如 arg1 绑定 name,arg2 绑定 age)。
- 编辑模板内容(使用 {{变量名}} 引用变量),示例:
- 模板:“姓名:{{arg1}},年龄:{{arg2}}”
- 输入:arg1=张佳,arg2=30
- 输出:“姓名:张佳,年龄:30”
- 特点:操作简单,适合无编程基础的学员实现变量组合。
4.5 变量聚合节点(Variable Aggregator)
- 核心功能:解决多分支变量冲突,从多个输入变量中选择有效结果输出(二选一,而非拼接)。
- 适用场景:当工作流存在条件分支(如“是/否”分支),无法确定哪个分支会产生输出时,用此节点聚合变量。
- 操作步骤:
- 添加变量聚合节点,连接所有可能产生输出的分支。
- 选择需聚合的变量类型(如 text 文本变量)。
- 配置输出规则:优先选择第一个非空变量输出。
- 示例:若“是”分支输出“已通过审核”,“否”分支输出“未通过审核”,聚合节点将自动输出当前分支的有效结果。
4.6 文档提取器节点(Document Extractor)
- 核心功能:提取上传文件中的文本内容(支持 TXT、Markdown、PDF、Docx 格式),输出为文本变量。
- 关键特性:
- 输出格式:始终为数组(单个文件输出长度为 1 的数组,多个文件输出对应长度的数组)。
- 局限性:不支持图片 PDF(无 OCR 能力),需搭配具备视觉理解的大模型节点处理。
- 操作步骤:
- 开启文件上传功能(【功能】→【文件上传】→ 勾选支持的文档类型)。
- 添加文档提取器节点,绑定 files 变量。
- 运行后,提取的文本可作为大模型节点的输入(如用于文档问答)。
4.7 变量赋值节点(Variable Assignment)
- 核心功能:修改会话变量的值(仅在 Chatflow 中可用,Workflow 无会话变量)。
- 关键概念:
- 会话变量:仅在当前对话中有效,开启新会话后自动重置(如存储用户姓名、公司等临时信息)。
- 操作步骤:
- 在 Chatflow 中创建会话变量(右上角【变量】→【添加变量】,设置名称、类型(如字符串)、默认值)。
- 添加变量赋值节点,选择需修改的会话变量(如 memory)。
- 绑定新值来源(如大模型提取的关键词、用户输入的内容)。
- 应用场景:用户输入“我是 A 公司的张三”,通过大模型提取“公司=A 公司,姓名=张三”,用变量赋值节点写入会话变量,后续对话可直接引用。
4.8 参数提取器节点(Parameter Extractor)
- 核心功能:将非结构化文本(如用户输入)转换为结构化数据(如姓名、年龄、电话等字段),与大模型的结构化输出功能类似,但更灵活。
- 操作步骤:
- 添加参数提取器节点,设置需提取的字段(如 name(字符串)、age(数字))。
- 绑定输入变量(如 user input)。
- 运行后,输出结构化数据(如 {"name":"张佳","age":30}),可被后续节点单独引用(如仅使用 age 字段)。
- 优势:无需修改大模型提示词,单独配置提取规则,便于后续调整和复用。
4.9 HTTP 请求节点(HTTP Request)
- 核心功能:调用外部 API(支持 GET/POST 方法),实现与第三方系统的数据交互(如调用钉钉接口发送通知、调用天气 API 获取实时数据)。
- 关键配置:
- 请求方法:GET(查询数据)/POST(提交数据)。
- 请求地址:API 接口 URL。
- 请求头(Headers):如 Content-Type: application/json(根据 API 要求配置)。
- 请求体(Body):JSON 格式的参数(如 {"user_id":"123","content":"测试"})。
- SSL 验证:HTTPS 接口开启,HTTP 接口关闭。
- 注意事项:
- API 返回结果为原始数据,需搭配参数提取器或代码执行节点解析所需字段。
- 需确保 API 地址可访问,避免网络不通导致请求失败。
4.10 列表操作节点(List Operation)
- 核心功能:对数组类型变量(如多个文件、多个文本)进行过滤、筛选,实现分类处理。
- 操作步骤:
- 添加列表操作节点,绑定输入数组(如 files 变量)。
- 设置过滤条件(如按文件类型过滤:type == 图片 或 type == 文档)。
- 筛选后的结果可分流至不同节点(如图片走大模型视觉识别,文档走文档提取器)。
- 应用场景:用户同时上传图片和文档时,自动分类处理,提高效率。
4.11 迭代节点(Iteration)
- 核心功能:对数组类型变量(如多个文件、多个任务)按顺序循环处理,逐个执行后续流程。
- 关键要求:仅接收数组输入(非数组变量需先转换为数组)。
- 操作步骤:
- 添加迭代节点,绑定数组变量(如 files 数组)。
- 配置循环内流程(如文档提取器 → 大模型分析 → 结果存储)。
- 运行后,所有数组元素的处理结果将汇总为一个新数组输出。
- 示例:上传 3 个 PDF 文档,迭代节点将逐个提取文本、分析内容,最终输出 3 个文档的分析结果数组。
4.12 循环节点(Loop)
- 核心功能:按指定条件重复执行某个流程,直到满足终止条件(与迭代节点的区别:无需数组输入,基于条件循环)。
- 关键配置:
- 循环变量:定义循环计数器(如 number,初始值为 0)。
- 终止条件:如 number == 10(循环 10 次后终止)、result == 20(某个输出结果等于 20 时终止)。
- 适用场景:
- 流程测试:循环运行某个应用,验证稳定性(如循环 100 次,统计失败次数)。
- 计数任务:如用户连续输入错误密码 3 次后,触发锁定逻辑。
- 注意事项:循环节点无输出变量,仅用于内部流程重复执行,不参与外部数据传递。
五、高级功能:插件与工作流嵌套
5.1 插件使用流程
- 安装插件:【工具】→【探索 Marketplace】→ 搜索插件(如 Markdown 转换器)→ 点击安装。
- 调用插件:在工作室画布中,点击【工具】→ 选择已安装的插件 → 绑定输入输出变量。
- 示例:使用 Markdown 转换器插件将文本转换为 PDF。
- 绑定输入变量:大模型生成的 Markdown 文本。
- 配置插件参数:输出格式选择 PDF。
- 绑定输出变量:转换后的 PDF 文件(可用于下载或发送)。
5.2 工作流嵌套(发布为工具)
- 核心功能:将常用的 Workflow 发布为工具,可在其他工作流中直接调用(实现功能复用)。
- 操作步骤:
- 编辑完成一个 Workflow(如“文本转 PDF”流程)。
- 点击【发布】→ 选择“发布为工具”。
- 填写工具信息:名称(如“文本转 PDF 工具”)、描述(如“将输入文本转换为 PDF 文件”)、输入输出说明。
- 保存后,在其他工作流中点击【工具】→ 选择已发布的工具 → 直接调用。
- 注意事项:Chatflow 不支持发布为工具,仅 Workflow 可发布。
六、常见问题与避坑指南
6.1 界面操作类问题
- 问题 1:工作流中文显示乱码或无法切换中文?
解决方案:按【设置】→【语言】→ 英语 → 中文的顺序重新切换,刷新页面。
- 问题 2:插件安装失败?
解决方案:
- 检查网络连接,确保能访问插件市场。
- 确认 Dify 版本与插件兼容(1.9 版本可尝试降级至 1.8)。
- 查看插件详情页的兼容说明,按要求安装依赖。
6.2 节点配置类问题
- 问题 1:大模型无法记住多轮对话?
解决方案:在大模型节点中开启【记忆窗口】,设置记忆轮数(如 5)。
- 问题 2:条件分支无法触发?
解决方案:检查变量绑定是否正确(如是否绑定 user input),判断规则是否符合逻辑(如文本是否包含关键词,注意大小写敏感)。
- 问题 3:文档提取器无法提取图片 PDF 内容?
解决方案:搭配具备视觉理解的大模型节点(如 VL 模型),先识别图片中的文本,再进行提取。
6.3 流程运行类问题
- 问题 1:工作流卡住,无法继续运行?
解决方案:
- 检查是否有未配置的节点(如条件分支缺少“其他”兜底)。
- 查看节点连接是否正确(如输入输出变量是否匹配)。
- 重启工作流,清除缓存。
- 问题 2:流式输出不生效?
解决方案:确保直接回复节点与大模型节点直接连接,中间无其他节点(如代码执行、模板转换)。
更多推荐

所有评论(0)