コンテンツにスキップ

ループノード

ループノードは、同じ処理を複数回繰り返したい場合や、配列データの各要素に対して順次処理を行いたい場合に利用します。 たとえば、複数のデータに対して同じAI処理を繰り返す場合などに便利です。

loop node

ループノードには主に2つの使い方があります。

1. 回数ループ(指定回数実行)

Section titled “1. 回数ループ(指定回数実行)”
  • 「ループタイプ」で「回数ループ(指定回数実行)」を選択します。
  • 「最大ループ回数」で繰り返したい回数を指定します(例:5回)。
  • 設定した回数だけ、ループ内のノードが順番に実行されます。

例えば、以下のようなプロンプトをループ内のLLMノードに設定すると、現在のループ回数に応じた異なる出力を得ることができます。

{{#loop.index#}}が3の倍数: 「{{#loop.index#}}: 🚀」
それ以外:「{{#loop.index#}}:🙏」
をそのまま出力

fixed loop

2. 繰り返し処理(配列要素を順次処理)

Section titled “2. 繰り返し処理(配列要素を順次処理)”
  • 「ループタイプ」で「繰り返し処理(配列要素を順次処理)」を選択します。
  • 「反復データ」で、ループ処理したい配列変数やJSON配列を指定します。
    • 既存の配列変数を選択するか、固定値モードで直接JSON配列を入力できます。
  • 配列の各要素ごとに、ループ内のノードが順次実行されます。

特に、前ノードの(CSVなど構造化された)出力をそのままループの反復データとして利用する場合に便利です。

variable loop

以下の例ではLLMノード(sample data)にjson配列のダミーデータを出力させ、ループの反復データとして活用する方法を紹介します。既存の配列変数を利用する場合「構造化出力」を有効にし、スキーマを設定する必要があります。

structured output

LLMのプロンプト例:

食品のタイトルと価格のサンプルデータを5件出力

また、ループノードでは、反復データの変数選択で前ノードの「sample data.product」を選択します。これにより、配列内の各要素がループ内で順次処理されます。

variable loop

ループ内のLLMノードのプロンプト例:

以下のデータをテーブル形式で出力
{{#loop.currentItem#}}

currentItemでは、ループ内で現在処理中の配列要素にアクセスできます。上記の例では、各食品のタイトルと価格がテーブル形式で出力されます。

以上で準備は完了です!デバッグボタンをクリックして、ワークフローを実行してみましょう。実行すると、以下のようなダミーデータが出力され、ループ処理ごとに異なる食品情報が表示されるkとが確認できます。

{
"product": [
{
"title": "有機トマトジュース 500ml",
"price": 350
},
{
"title": "北海道産じゃがいも 1kg",
"price": 400
},
{
"title": "国産鶏むね肉 300g",
"price": 450
},
{
"title": "無添加味噌 500g",
"price": 600
},
{
"title": "新鮮バナナ 1房",
"price": 300
}
]
}

variable loop output

  • 「同時実行」をONにすると、各ループ処理を並列で実行できます(デフォルトはOFFで順次実行)。