Dify节点(变量聚合器&模板转换)
摘要:变量聚合节点通过整合多路分支的变量,简化下游节点配置,支持字符串、数字等多种数据类型(需同类型聚合)。适用于条件分支或分类场景,可避免重复定义。模板转换节点基于Jinja2实现文本拼接、结构化输出(如Markdown/JSON)及HTML渲染,提升工作流灵活性。二者结合可优化数据流管理,减少冗余节点。参考Dify官方文档获取详细用法。
·
变量聚合器
- 定义:变量聚合节点是工作流程中的关键节点,用于将多路分支的变量聚合为一个变量,实现下游节点的统一配置。它可整合不同分支的输出结果,无论哪个分支被执行,其结果都能通过一个统一的变量来引用和访问,避免下游节点重复定义。
- 使用场景:
- 问题分类后的多路聚合:在未添加变量聚合时,分类1和分类2分支经不同的知识库检索后,需要分别定义下游的LLM和直接回复节点,容易造成重复配置。而添加变量聚合后,可将两个知识检索节点的输出聚合为一个变量,简化数据流管理。
- IF/ELSE条件分支后的多路聚合:在条件分支场景下,不同分支的输出结果可通过变量聚合节点整合,后续节点只需处理聚合后的变量,无需针对每个分支单独配置。
- 格式要求:
- 支持聚合多种数据类型,包括字符串(
String)、数字(Number)、文件(File)、对象(Object)以及数组(Array)。 - 只能聚合同一种数据类型的变量。例如,若第一个添加至变量聚合节点内的变量数据格式为
String,后续连线时会自动过滤可添加变量为String类型。 - 聚合分组:开启聚合分组后,可聚合多组变量,但各组内聚合时要求同一种数据类型。
- 支持聚合多种数据类型,包括字符串(
- 示例:
-
创建一个chatFlow

-
完整工作流(没有聚合变量的)

-
完整工作流(使用聚合变量的)

-
- 使用聚合变量前后对比:
- 两个分支,每次只有一个分支执行并返回结果
- 没有聚合变量需要有两个回复
- 使用聚合变量,将LLM和LLM2的结果进行聚合成一个变量,即将有结果的值赋给聚合变量,最后输出聚合变量的结果即可。
模板转换
- 定义:模板节点借助Jinja2的Python模板语言,可在工作流内灵活地进行数据转换、文本处理等操作。
- 使用场景:
- 文本拼接:可将多个输入(如文章标题、介绍、内容)拼接为完整文本。
- 结构化输出:例如将知识检索节点获取的信息及其相关的元数据,整理成一个结构化的Markdown格式,也可用于JSON转换等,满足后续步骤对数据格式的需求。
- HTML渲染:支持渲染HTML表单,可用于创建登录表单等页面元素。
- 示例:
-
创建一个WORKFLOW

-
完整工作流

-
文本拼接

-
总结
- 变量聚合:适用于多路分支场景,可对多个变量进行聚合,减少重复节点,使页面布局更简洁,便于管理和维护工作流。
- 模板转换:借助Jinja2脚本语言,可对内容进行拼接、格式转换等操作,满足多种数据处理和展示需求,提升工作流的灵活性和效率。
参考文档
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)