循环(Loop)节点用于执行依赖前一轮结果的重复任务,直到满足退出条件或达到最大循环次数。
循环节点和迭代节点在任务处理上的定位不同:
类型 | 特点 | 适用场景 |
---|---|---|
循环(Loop) | 轮次之间存在依赖关系的优化型任务。即任务的每一轮执行都依赖上一轮的结果。 | 需要前一轮的计算结果。 |
迭代(Iteration) | 轮次之间无依赖关系的批处理任务。即每一轮任务可以独立运行,无需依赖前一轮。 | 每轮独立执行。 |
循环节点包含以下三个关键配置项和一个子节点:
配置项/子节点 | 作用 | 示例 |
---|---|---|
循环终止条件(Loop Termination Condition) | 设置循环何时停止。 | 例:当变量 x < 50 时,停止循环。 |
最大循环次数(Maximum Loop Count) | 限制最多执行的轮次,避免无限循环。 | 例:最多执行 10 轮,不管是否满足退出条件。 |
循环变量(Loop Variables) | 用于在循环的不同轮次间传递数据,并在循环结束后继续供下游节点使用。 | 例:变量 x < 50 在每轮循环中递增 1,循环体内部可以基于 x < 50 进行计算,循环结束后,x < 50 的最终值可用于后续流程。 |
退出循环节点(Exit Loop) | 当循环体内运行到此节点后,循环终止。 | 例:最多执行 10 轮,不管是否满足退出条件。 |
退出循环节点 与 循环终止条件 均可作为循环的终止触发点,满足任意一个条件时,循环都会提前退出。
如果未配置任何退出条件,则循环将持续运行(相当于 while (true)),直到达到 最大循环次数。
需求:生成 1-100 的随机数,直到随机数小于 50 时停止。
实现步骤:
在 循环 节点中,配置 循环终止条件,为 模板转换 节点输出 done
。
使用 代码执行 节点生成 1-100
的随机数。
使用 条件分支 节点判断随机数是否大于 50
:
如果大于或等于 50,输出 当前数字
并继续循环,生成新的随机数。
如果小于 50,输出 最终输出数字
,并经由 模板转换 节点输出 done
,结束循环。
50
时自动停止。需求:通过一个循环工作流生成并逐步重写一首诗,每次输出都基于上一轮的结果。循环执行 4 次后自动停止。
实现步骤:
num(循环次数):初始值为 0,每次循环 +1。
verse(诗歌内容):初始值 I haven’t started creating yet
,后续每次循环更新。
3
:如果大于 3,则进入 退出循环 节点,结束循环。
如果小于或等于 3,则进入 LLM 节点继续循环。
参考 Prompt:
使用用户的输出 sys.query
作为灵感,创作一首欧洲长诗。
参考你上一次的创作 verse
,尝试在新的诗句中展现进步和创新。
确保你的诗句符合欧洲文学的风格和传统,注重诗歌的韵律和意境。
在第一次循环时,verse 为 I haven’t started creating yet
,之后每次循环根据上一轮的输出更新诗歌。每次模型生成的新诗歌都会覆盖 verse 变量,供下一次循环使用。
更新 num 变量,每次循环 +1。
更新 verse 变量为模型新生成的诗歌内容,直接覆盖前一轮循环的诗歌内容。