简介

循环(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 时停止。

实现步骤

  1. 循环 节点中,配置 循环终止条件,为 模板转换 节点输出 done

  2. 使用 代码执行 节点生成 1-100 的随机数。

  3. 使用 条件分支 节点判断随机数是否大于 50

  • 如果大于或等于 50,输出 当前数字 并继续循环,生成新的随机数。

  • 如果小于 50,输出 最终输出数字,并经由 模板转换 节点输出 done,结束循环。

  1. 循环将在随机数小于 50 时自动停止。

示例二:如何使用循环变量与退出循环节点?

需求:通过一个循环工作流生成并逐步重写一首诗,每次输出都基于上一轮的结果。循环执行 4 次后自动停止。

实现步骤:

  1. 循环 节点中,配置 循环变量,用于在每次迭代中传递数据:
  • num(循环次数):初始值为 0,每次循环 +1。

  • verse(诗歌内容):初始值 I haven’t started creating yet,后续每次循环更新。

  1. 使用 条件分支 节点判断循环次数是否大于 3
  • 如果大于 3,则进入 退出循环 节点,结束循环。

  • 如果小于或等于 3,则进入 LLM 节点继续循环。

  1. 使用 LLM 节点,要求模型根据用户的输入和过往的创作输出诗歌内容。

参考 Prompt:

  • 使用用户的输出 sys.query 作为灵感,创作一首欧洲长诗。

  • 参考你上一次的创作 verse,尝试在新的诗句中展现进步和创新。

  • 确保你的诗句符合欧洲文学的风格和传统,注重诗歌的韵律和意境。

在第一次循环时,verse 为 I haven’t started creating yet,之后每次循环根据上一轮的输出更新诗歌。每次模型生成的新诗歌都会覆盖 verse 变量,供下一次循环使用。

  1. 使用 变量赋值 节点,在每次循环后更新循环中的变量:
  • 更新 num 变量,每次循环 +1。

  • 更新 verse 变量为模型新生成的诗歌内容,直接覆盖前一轮循环的诗歌内容。

  1. 输入你的诗歌灵感,模型将输出四个版本的诗歌,每一篇诗歌都以前一篇为基础而产生。