循环
简介
循环(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 节点继续循环。
- 使用 LLM 节点,要求模型根据用户的输入和过往的创作输出诗歌内容。
参考 Prompt:
-
使用用户的输出
sys.query
作为灵感,创作一首欧洲长诗。 -
参考你上一次的创作
verse
,尝试在新的诗句中展现进步和创新。 -
确保你的诗句符合欧洲文学的风格和传统,注重诗歌的韵律和意境。
在第一次循环时,verse 为 I haven’t started creating yet
,之后每次循环根据上一轮的输出更新诗歌。每次模型生成的新诗歌都会覆盖 verse 变量,供下一次循环使用。
- 使用 变量赋值 节点,在每次循环后更新循环中的变量:
-
更新 num 变量,每次循环 +1。
-
更新 verse 变量为模型新生成的诗歌内容,直接覆盖前一轮循环的诗歌内容。
- 输入你的诗歌灵感,模型将输出四个版本的诗歌,每一篇诗歌都以前一篇为基础而产生。