DifyでIterationノードが実装されたので試した結果

まず結論から、試してわかったこと

  • 終了条件は設定できない

  • 入力と出力は1:1対応で、要素数が等しい配列

  • 入力が配列じゃないといけないので基本的にコードノードと併用

  • 出力はIterationノードの中の処理の任意の変数を設定できる

  • 中の処理には、変数として配列の各要素(item)と要素番号(index)が使える

  • 中の処理でitemなどを設定して"無効な変数"エラーが出る時があるけど無視しても正常に動く

  • バッチ処理ができない


Iterationは簡単にいうと繰り返し処理です。

例として作ったのはAIにGoogle検索をさせて答えさせるワークフローです。
Google検索ツールは、ヒットしたページのリンクを配列(Array)で返します。
ページの内容は返してくれないので、ページの内容を読み込むツール(Jina Readerなど)も一緒に呼び出す必要があるのですが、今までは、Readerノードを10個書く必要がありました

それがIterationを使えば一個書けばOKです


触ってみるのが一番早いので、解説は省きます
参考までに僕のワークフローも共有しておきます(設定は結構適当)



個人的には、”回答に必要な情報が揃うまで”みたいな終了条件を期待していたのですが、今はできなさそうです

公式としてはIterationとは別にLoop機能を実装する予定があると過去に表明していました
Iterationより高度な設定ができるようになるそうです


Iterationを使った実装などはTwitterで随時紹介していきます


この記事が気に入ったらサポートをしてみませんか?