对数组中的元素依次执行相同的操作步骤,直至输出所有结果,可以理解为任务批处理器。迭代节点通常配合数组变量使用。
例如在长文翻译迭代节点内,如果将所有内容输入至 LLM 节点,有可能会达到单次对话限制。上游节点可以先将长文拆分为了多个片段,配合迭代节点对各个片段执行批量翻译,以避免达到 LLM 单次对话的消息限制。
使用迭代的条件是确保输入值已格式化为列表对象;迭代节点将依次处理迭代开始节点数组变量内的所有元素,每个元素遵循相同的处理步骤,每轮处理被称为一个迭代,最终输出处理结果。
迭代节点的结构通常包含输入变量、迭代工作流、输出变量三个功能单元。
输入变量: 仅接受 Array 数组变量类型数据。如果你不了解什么是数组变量,请阅读 扩展阅读:数组。
迭代工作流: 你可以在迭代节点中使用多个工作流节点,编排不同的任务步骤。
输出变量: 仅支持输出数组变量 Array[List]
。如果你想要输出其它变量格式,请阅读 扩展阅读:如何将数组转换为文本。
具体配置步骤
sections
,参数类型为 Array[Object]
参数提取效果受模型推理能力和指令影响,使用推理能力更强的模型,在指令内增加示例可以提高参数提取的效果。
在 LLM 节点内配置输入变量 GenerateOverallOutline/output
和 Iteration/item
迭代的内置变量:items[object]
和 index[number]
items[object] 代表以每轮迭代的输入条目;
index[number] 代表当前迭代的轮次;
并行模式
迭代节点支持并行模式,开启后将有效提升迭代节点的整体运行效率。
下图是迭代节点开启或关闭并行模式的运行效果对比。
并行模式下的最高并行轮数为 10,这意味着单位时间内最多可以同时运行 10 个任务。如果需要处理超过 10 个任务,前 10 个元素将率先同时运行,前排任务处理完成后将继续处理剩余任务。
开启并行模式后,不再建议在迭代节点内放置直接回答、变量赋值和工具节点。此举可能会造成异常情况。
迭代节点通常需要处理大量任务,有时会在处理某个元素时发生错误。为了避免某个元素异常而中断所有任务,你可以在错误响应方法中设置异常的应对方法:
迭代节点的输入变量与输出变量相对应。例如输入变量为 [1,2,3] ,则输出变量同样为 [result-1, result-2, result-3]。
如果选择了忽略错误并继续, 异常情况的输出值为 null 值,例如 [result-1, null, result-3];
如果选择了移除错误输出, 将不会输出异常变量,例如 [result-1, result-3]。
你可以通过以下节点生成数组变量,用以充当迭代节点的输入变量:
迭代节点的输出变量为数组格式,无法直接输出 String 字符串内容。你可以使用一个简单的步骤将数组转换回文本。
使用代码节点转换
代码示例:
使用模板节点转换
代码示例: