循环组件
该组件将文本输入分割成多个文本段,并对每个文本段迭代执行预定义的工作流。
一个**循环**组件可以将文本输入分割成多个文本段,并对其内置的组件工作流应用于每个文本段。
应用场景
当需要工作流循环,且循环次数*不*固定,而是取决于特定智能体组件输出所创建的文本段数量时,**循环**组件是必不可少的。
- 例如,如果您计划将几个段落输入到一个大语言模型(LLM)中进行内容生成,每个段落都有其自身的重点,而一次性将它们全部提供给 LLM 可能会造成混淆或矛盾,那么您可以使用一个**循环**组件,它封装一个**生成**组件,来对每个段落重复内容生成过程。
- 另一个例子:如果您希望使用 LLM 将一篇长论文翻译成目标语言,而不超过其 token 限制,可以考虑使用一个**循环**组件,它封装一个**生成**组件,将论文分解成更小的部分,并对每一部分重复翻译过程。
内部组件
循环项 (IterationItem)
每个**循环**组件都包含一个内部的**循环项** (IterationItem) 组件。**循环项**组件既是**循环**组件内工作流的起点,也是其输入节点。它管理着针对输入创建的所有文本段的工作流循环。
注意
**循环项** (IterationItem) 组件*仅*对当前**循环**组件封装的组件可见。
构建内部工作流
您可以在**循环**组件中拖入其他组件来构建一个内部工作流,这些“添加的内部组件”对于当前**循环**组件外部的组件不再可见。
重要
要从一个添加的内部组件引用创建的文本段,只需在该内部组件的**输入**部分添加一个等于 **IterationItem** 的**引用**变量即可。无需引用相应的外部组件,因为**循环项** (IterationItem) 组件管理着所有已创建文本段的工作流循环。
注意
必要时,一个添加的内部组件可以引用一个外部组件。
配置
输入
**循环**组件使用输入变量来指定其数据输入,即待分段的文本。您可以为**循环**组件指定多个输入源。在**输入**部分点击**+ 添加变量**以包含所需的输入变量。输入变量有两种类型:**引用**和**文本**。
- **引用**:使用一个组件的输出或用户输入作为数据源。您需要从下拉菜单中选择
- **组件输出**下的一个组件 ID,或
- **开始输入**下的一个全局变量,该变量在**开始**组件中定义。
- **文本**:使用固定文本作为查询。您需要输入静态文本。
分隔符
用于将输入文本分割成段的分隔符
- 逗号 (默认)
- 换行符
- 制表符
- 下划线
- 正斜杠
- 破折号
- 分号