小试牛刀-Dify中迭代器组件
先说几个核心判断。Dify里的迭代器组件,本质上就是一个数据流的“循环处理器”——你给它一组数据,它就挨个处理一遍。这跟你平常写代码时用的 foreach 循环有点像。输入是数组,输出也是数组。它真正解决的是那种需要“批量处理、重复操作”的场景。从字母到单词,再到复杂的文本生成,都能派上用场。
一个最简可用的工作流:从字母到单词
我们先看一个最直观的例子。这个工作流要完成的任务很简单:把字母 a、b、c 分别转成一个以该字母开头的英文单词,并按指定格式输出。整个过程分为四个步骤:初始化 -> 合并列表 -> 迭代处理 -> 输出结果。
效果图如下:
你点击运行后,应该能看到类似这样的输出:Loop 0:a->AppleLoop 1:b->BananaLoop 2:c->Cat
下面就来拆解一下这个工作流的搭建步骤。
工作流搭建:一步一步来
1. 初始化:用三个模板转换组件分别赋值
先拉三个模板转换组件,分别填入 a、b、c。这一步没什么好说的,相当于给每个节点设了个初始变量。
2. 合并列表:用一个代码节点把它们串起来
接下来加一个代码执行节点,接收上面三个节点的输出,做一个简单的合并处理。逻辑很简单:把三个字符串拼成一个 JSON 对象,key 设为 result,value 是一个字符串数组。预期效果是 ["a", "b", "c"]。这一步是所有循环处理的基础——迭代器需要的是一个数组输入。
3. 迭代器组件:真正干活的核心
现在轮到迭代器上场了。它的工作是:按顺序提取列表的每一个元素,交给大模型生成单词,再通过格式处理节点标记溯源信息,方便后续理解。
迭代器的输入是数组(也就是上一步生成的 ["a","b","c"]),输出是字符串。运行时,每次迭代的结果会被缓存到一个新的数组中,供后续节点使用。从功能上看,这次演示的只是一个极简版本,目的是帮你理解“循环”和“批处理”的逻辑。后续有机会,会复原官网提供的长篇小说生成案例——那才是它真正大展身手的地方。
3.1 大模型生成单词
这一步只需要一句提示词就够用了。比如:
“请生成一个以 {{input}} 开头的英文单词,只输出单词本身。”
3.2 定义输出模板
用模板转换组件实现。这里我们设置一个输出模板:Loop {{arg2}}:{{arg1}}->{{arg3}}
——这样每次迭代的结果都能按统一格式显示出来,清晰明了。
4. 结果输出:收集并展示
在结束节点中配置好输出变量,把迭代器的运行结果打印出来。整个工作流配置完成。
5. 测试运行
这个工作流没有外部输入,直接点击运行即可。从实际效果来看,每一轮迭代都按照我们预定的模板 Loop {{arg2}}:{{arg1}}->{{arg3}} 正确输出了。字母、序号、生成的单词一一对应,逻辑清晰。
补充说明
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名