微信扫码
添加专属顾问
我要投稿
深入探索Dify工作流节点的高级应用,掌握高效任务处理技巧。 核心内容: 1. 迭代节点的工作原理及其在长文翻译中的应用 2. HTTP请求节点的使用方法和场景 3. Agent节点的策略和多步推理实现
对数组中的元素依次执行相同的操作步骤,直至输出所有结果,可以理解为任务批处理器。迭代节点通常配合数组变量使用。
例如在长文翻译迭代节点内,如果将所有内容输入至 LLM 节点,有可能会达到单次对话限制。上游节点可以先将长文拆分为了多个片段,配合迭代节点对各个片段执行批量翻译,以避免达到LLM 单次对话的消息限制。
使用迭代的条件是确保输入值已格式化为列表对象;迭代节点将依次处理迭代开始节点数组变量内的所有元素,每个元素遵循相同的处理步骤,每轮处理被称为一个迭代,最终输出处理结果。
迭代节点的结构通常包含:输入变量、迭代工作流、输出变量三个功能单元。
输入变量 | |
迭代工作流 | |
输出变量 | Array[List]。 |
后续我也会写一个迭代的应用,有兴趣的可以关注后续文章。
允许通过 HTTP 协议发送服务器请求,适用于获取外部数据、webhook、生成图片、下载文件等情景。它让你能够向指定的网络地址发送定制化的HTTP 请求,实现与各种外部服务的互联互通。
该节点支持常见的 HTTP 请求方法:
你可以通过配置 HTTP 请求的包括 URL、请求头、查询参数、请求体内容以及认证信息等。
考虑到调用可能会存在网络波动等无法调用的情况,我们可以设置失败时重试的逻辑,默认是最大重试次数3次,间隔100毫秒,我们可以根据实际情况进行一个调整。
默认无异常处理,可以设置默认值也可以设置异常分支,具体可以根据实际业务流程进行设置。
下面是我之前做的自然语言转SQL语句后查询数据库返回数据的一个demo,看我过之前的文章的就知道我们是调用了HTTP请求节点:
Agent 节点是 Dify Chatflow/Workflow 中用于实现自主工具调用的组件。它通过集成不同的 Agent 推理策略,使大语言模型能够在运行时动态选择并执行工具,从而实现多步推理。
Dify 内置了Function Calling和ReAct两种策略,可在Marketplace → Agent策略分类中安装使用。
1、Function Call
通过将用户指令映射到预定义函数或工具,LLM先识别用户意图,再决定调用哪个函数并提取所需参数。它的核心是调用外部函数或工具,属于一种明确的工具调用机制。
优点:
2、ReAct (Reason + Act)
ReAct 策略使 Agent 交替进行思考和行动:LLM 首先思考当前状态和目标,然后选择并调用合适的工具,工具的输出结果又将引导 LLM 进行下一步的思考和行动,如此循环,直到问题解决。
优点:
ps:工具列表是需要自行添加的,点击+按钮,弹出选择工具的列表框,列表内是内置和自己安装的工具,如果没有可以去插件市场自行下载。
“工具”节点可以为工作流提供强大的第三方能力支持,分为以下三种类型:
添加节点时,选择右侧的 “工具” tab 页。配置工具节点一般分为两个步骤:
1、对工具授权/创建自定义工具/将工作流发布为工具
2、配置工具输入和参数
工具节点可以连接其它节点,通过变量处理和传递数据。
循环(Loop)节点用于执行依赖前一轮结果的重复任务,直到满足退出条件或达到最大循环次数。
循环节点和迭代节点在任务处理上的定位不同:
循环节点包含以下两个关键配置项:
你可以在循环退出条件中使用循环体内的变量或会话中的全局变量,让循环按照你的需求停止。
后续版本将提供:
定义一个工作流程结束的最终输出内容。每一个工作流在完整执行后都需要至少一个结束节点,用于输出完整执行的最终结果。
结束节点为流程终止节点,后面无法再添加其他节点,工作流应用中只有运行到结束节点才会输出执行结果。若流程中出现条件分叉,则需要定义多个结束节点。
结束节点需要声明一个或多个输出变量,声明时可以引用任意上游节点的输出变量。
PS:Chatflow内不支持结束节点。
定义一个 Chatflow 流程中的回复内容。
你可以在文本编辑器中自由定义回复格式,包括自定义一段固定的文本内容、使用前置步骤中的输出变量作为回复内容、或者将自定义文本与变量组合后回复。
可随时加入节点将内容流式输出至对话回复,支持所见即所得配置模式并支持图文混排,如:
1、输出 LLM 节点回复内容
2、输出生成图片
3、输出纯文本
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-24
2024-04-25
2024-07-16
2024-07-20
2024-04-24
2024-05-08
2024-06-21
2024-05-09
2024-08-06
2024-05-07