2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

イテレーション

目的
複数行テキストを「1行=1件」として処理し、各行を1文要約して一覧化します。Difyのイテレーションは 入力=配列(Array)、出力=配列(Array) が前提です。文字列は先に配列へ変換します。
イテレーションノードを動作させるためのサンプルです。
イテレーションは事前に分割、配列などに変換しておく必要がある。
テキストをそのまま渡してはだめ


全体構成

イテレーション.jpg

[開始: raw_texts]
   → [コード実行: split → items[]]
   → [イテレーション: 入力 items[] / 内部 LLM で要約 / 出力=LLMの text を集約(Array)]
   → [変数代入: summary_list[] に結果を書き込み]
   → [LLM(整形): summary_list[] を箇条書き化]
   → [回答]

手順

1) 開始ノード

  • 変数: raw_texts
  • タイプ: テキスト(複数行)
  • 説明: 「1行=1件で入力してください」

2) コードノード(文字列→配列)

  • 入力: raw_texts
  • Python
def main(raw_texts: str):
    # 改行で分割、空行は除外
    items = [s.strip() for s in raw_texts.splitlines() if s.strip()]
    return {"items": items}
  • 出力: itemsArray[String]

3) イテレーションノード

  • 入力: items(上のコード出力の Array)
  • 内部 LLM(各要素の要約)
    • System: 「あなたは簡潔な要約器です。」
    • User プロンプト(ここが最重要)
      次の文を日本語で1文要約してください。
      ---
      {{(変数挿入ボタンから)イテレーション要素}}   ← 手打ち禁止!
      
    • 注意{{#item#}}手打ちしないでください。右側の変数挿入ボタンから「イテレーション要素」(UI では iteration.item など)をクリック挿入します。手打ちすると 文字列の“{{#item#}}” が送られて要約に失敗します。
  • 出力(イテレーションの《出力変数》)
    • 内部 LLM の text を選択(=集約対象
    • ここは保存先の会話変数を選ぶ場所ではありません

4) 変数代入(会話変数へ保存)

  • 右パネル「会話変数」で事前に作成:
    • summary_list / 型: Array[String] / 既定値: []
  • 変数代入ノード:
    • 左: summary_list(会話変数)
    • 右: 前ノード(イテレーション)の出力配列

5) LLM(整形)

  • System: 「あなたは編集者です。出力は本文のみ。」
  • User:
次の要約配列を、番号付き箇条書きで出力してください。
前置き・後書きは不要です。

{{#summary_list#}}

6) 回答ノード

  • 送信: 上の LLM の text

動作確認(例)

raw_texts 入力

生成AIは業務の効率化に寄与する
DifyはノーコードでLLMワークフローを構築できる
イテレーションノードで同じ処理を複数データへ適用できる

期待される最終出力(例)

1. 生成AI活用により業務効率化が可能という要点の要約
2. DifyでノーコードにLLMワークフロー構築が可能という要点の要約
3. イテレーションで同一処理を複数データへ適用できるという要点の要約

つまずき防止チェックリスト

  • コードノードの出力が items: Array[String] になっている
  • イテレーションの内部 LLM で 変数挿入ボタンから要素を挿入(iteration.item 等)。手打ちの {{#item#}} は厳禁
  • イテレーションの《出力変数》は 集約対象のフィールド(LLM→text) を選ぶ
  • 会話変数 summary_listArray[String] で作成済み
  • 変数代入で summary_list =(イテレーション結果の配列) を設定
  • 終了ノード(回答)がある

付録:小ワザ

  • パラレルモードで高速化(APIレートと順序性に注意)
  • 最大件数ガード:コードで items = items[:50] など
  • 空入力対策:空のときは「入力がありません」などのメッセージを返す
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?