批处理节点
批处理节点用于批量执行部分操作。
一、节点说明
工作流执行时,每个节点按顺序运行一次,如果需要一次性运行多次,例如==一次性查询多个城市的天气==,可以使用批处理节点提高工作流效率。批处理节点会批量运行除批处理和循环节点以外的任何节点,直到达到次数限制或者列表的最大长度。
批处理节点适用于大量数据并行处理的场景。==相对于添加多个相同的节点执行任务,批处理节点的效率更高==。例如批量生成根据故事生成绘本的场景,需要根据每个故事片段生成对应的图片,你可以使用批处理节点执行文生图的工作流,一次性生成多张图片。

[!NOTE]
- 每一批任务默认并行运行,如需串行执行,可以将并行数量设置为 1,或者使用循环节点。
- ==批处理节点中不支持添加另一个批处理节点或循环节点。==
- 在工作流中,同一时刻只能运行一个流式插件或消息节点。请勿通过批处理节点批量并行运行流式插件或消息节点,否则可能导致这些节点无法按预期正常输出消息。
二、配置批处理节点
==批处理节点的处理对象为输入参数引用的数组结构==,例如上游某个节点输出的多条数据结果。批处理节点会遍历数组中的每个元素,对所有元素同时执行一次性处理,直到所有元素处理完成,或达到指定的次数上限。
1. 批处理设置
为避免并行运行数量过大导致性能风险,批处理节点是分批运行的,默认每批执行 10 次,最多运行 200 次。通过批处理设置,你可以调整每一批运行的最大次数,和多批处理的总次数上限。具体参数包括:
- 并行运行数量上限:每一批运行的最大次数。==默认并行运行 10 次。此参数可指定为某个固定值,例如 5==;也支持引用上游节点数值类型的的输出参数。
- 并行运行数量参数的引用值如果大于 10,则设置为 10,如果小于 1,则设置为 1。
- 批处理次数上限:==批处理执行总次数达到此上限时,此节点终止运行。==默认批处理次数上限为 100,最大支持设置为 200。此节点的执行逻辑是处理数组中的元素,当批处理次数达到设置的上限时,即使节点未遍历数组中的每个元素,也会停止运行。

2. 输入
输入参数指批处理体中要使用的参数。批处理节点通常需要批量处理数组中的所有元素,那么可以在批处理节点定义输入参数,引用前置节点 Array 类型的输出,批处理体中就可以引用批处理节点输入参数中的某个元素或索引,否则只能引用上游节点 Array 类型参数的整个数组结构。
批处理节点应最少设置一个输入参数,且只能引用上游节点的 Array 类型。
3. 输出
输出参数是批处理完成后输出的内容,仅支持引用批处理体中节点的输出变量,格式为数组。
4. 批处理体
批处理体和循环体类似,每个批处理节点都会生成一个批处理体画布。开发者需要选中批处理体,通过拖拉拽的方式将待批处理的节点添加到批处理体中,并使用连接线依次将批处理体和各个节点顺序连接起来。你还需要在批处理节点和上下游节点之间添加连线,但无需调整批处理体和批处理节点之间的连线。
三、示例
批处理:将数组中的元素进行逐一累加100,并输出,采用批处理完成。
输入为开始节点:定义整数数组的input节点
并行运行数量:4
批处理次数上限:100

批处理体

系统提示次如下:
# 角色
你是一个数据处理助手,能够对输入的数据进行特定运算并输出结果。
## 技能
### 技能 1: 数据累加输出
1. 当接收到用户输入的数据时,将该数据累加 100。
2. 输出累加 100 后的结果。
===回复示例===
累加 100 后的结果为:<具体结果>
===示例结束===
## 限制:
- 只处理数据累加 100 并输出结果相关的内容,拒绝回答无关话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
测试
测试一下这个节点

当并行运行数量:4,批处理次数上限:100,输入数组为:[1,2,3,4,5,6,7,8,9,10]

当并行运行数量:1(相当于循环),批处理次数上限:100,输入数组为:[1,2,3,4,5,6,7,8,9,10]

从上述两张图,可以看出,批处理的效率更高。
批处理这块讲完了,你学会了吗。
