Dify
日本語
日本語
  • 入門
    • Difyへようこそ
      • 特性と技術仕様
      • モデルプロバイダーリスト
    • クラウドサービス
    • コミュニティ版
      • Docker Compose デプロイ
      • ローカルソースコードで起動
      • aaPanelでのデプロイ方法
      • フロントエンドDockerコンテナを単独起動
      • 環境変数の説明
      • よくある質問
    • Dify Premium
    • Dify 教育版
  • マニュアル
    • モデル
      • 新しいプロバイダーの追加
      • 事前定義されたモデルの追加
      • カスタムモデルの追加
      • インタフェース
      • 配置ルール
      • 負荷分散
    • アプリ・オーケストレーション
      • アプリの作成
      • チャットボット
        • 複数モデルのデバッグ
      • エージェント
      • ツールキット
        • コンテンツモデレーション
    • ワークフロー
      • キーコンセプト
      • 変数
      • ノードの説明
        • 開始
        • 終了
        • 回答
        • LLM
        • 知識検索
        • 質問分類
        • 条件分岐
        • コード実行
        • テンプレート
        • テキスト抽出ツール
        • リスト処理
        • 変数集約
        • 変数代入
        • 反復処理(イテレーション)
        • パラメータ抽出
        • HTTPリクエスト
        • エージェント
        • ツール
        • 繰り返し処理(ループ)
      • ショートカットキー
      • オーケストレートノード
      • ファイルアップロード
      • エラー処理
        • 事前定義されたエラー処理ロジック
        • エラータイプの概要
      • 追加機能
      • プレビューとデバッグ
        • プレビューと実行
        • ステップ実行
        • 対話/実行ログ
        • チェックリスト
        • 実行履歴
      • アプリケーション公開
      • JSON形式での出力
      • 変更通知:画像アップロード機能がファイルアップロード機能に統合されました
    • ナレッジベース
      • ナレッジベース作成
        • 1. オンラインデータソースの活用
          • 1.1 Notion からデータをインポート
          • 1.2 Webサイトからデータをインポート
        • 2. チャンクモードの指定
        • 3. インデックス方式と検索オプションの設定
      • ナレッジベースの管理
        • ナレッジベース内ドキュメントの管理
        • APIを活用したナレッジベースのメンテナンス
      • メタデータ
      • アプリ内でのナレッジベース統合
      • リコールテスト/引用帰属
      • ナレッジベースの要求頻度制限
      • 外部ナレッジベースとの接続
      • 外部ナレッジベースAPI
    • ツール
      • クイック統合ツール
      • 高度統合ツール
      • ツールの設定
        • Google
        • Bing
        • SearchApi
        • StableDiffusion
        • Perplexity Search
        • AlphaVantage 株式分析
        • Dall-e
        • Youtube
        • Serper
        • SearXNG
        • SiliconFlow(Flux AI サポート)
        • ComfyUI
    • アプリ公開
      • シングルページWebアプリとして公開
        • Web アプリの設定
        • テキスト生成アプリ
        • 対話型アプリ
      • Webサイトへの埋め込み
      • API基づく開発
      • フロントエンドテンプレートに基づいた再開発
    • アノテーション
      • ログとアノテーション
      • アノテーション返信
    • モニタリング
      • データ分析
      • 外部Opsツール統合
        • LangSmithを統合
        • LangFuseを統合
        • Opikを統合
    • 拡張
      • API 拡張
        • Cloudflare Workers を使用した API ツールのデプロイ
        • コンテンツモデレーション
      • コード拡張
        • 外部データツール
        • コンテンツモデレーション
    • コラボレーション
      • 発見
      • メンバーの招待と管理
    • 管理
      • アプリの管理
      • チームメンバーの管理
      • 個人アカウントの管理
      • サブスクリプション管理
      • バージョン管理
  • ハンドオン工房
    • 初級編
      • ゼロからAI画像生成アプリの構築方法
      • AIエージェントの実践:個人のオンライン旅行アシスタントの構築方法
    • 中級編
      • チャットストリームエージェントを使用した Twitter アカウントの分析方法
      • ファイルアップロードを使用した記事理解アシスタントの構築方法
  • コミュニティ
    • サポートの求め
    • 貢献者ガイド
    • ドキュメントへの貢献
  • プラグイン
    • 機能紹介
    • クイックスタート
      • プラグインのインストールと活用
      • プラグイン開発の入門
        • 開発環境のセットアップ
        • ツール型プラグイン
        • モデル型プラグイン
          • モデルプロバイダーの構築
          • 定義済みモデルの組み込み
          • カスタムモデルの組み込み
        • エージェント戦略プラグイン
        • 拡張機能型プラグイン
        • バンドル
      • プラグインのデバッグ方法
    • プラグイン管理方法
    • スキーマ仕様
      • Manifest(マニフェスト)
      • Endpoint(エンドポイント)
      • Tool(ツール)
      • Agent(エージェント)
      • Model(モデル)
        • モデル設計規則
        • モデルスキーマ
      • 一般的な標準仕様
      • 永続化されたストレージ
      • Difyサービスの逆呼び出し
        • アプリ
        • モデル
        • ツール
        • ノード
    • ベストプラクティス
      • Slack Bot プラグインの開発
      • Dify MCP プラグインガイド:ワンクリックで Zapier に接続してメールを自動送信
    • プラグインの公開
      • プラグインの自動公開
      • Difyマーケットプレイスへの公開
        • プラグイン開発者ガイドライン
        • プラグインのプライバシー保護に関するガイドライン
      • 個人GitHubリポジトリへの公開
      • ローカルでの公開と共有
      • 第三者署名検証のためにプラグインに署名する
    • よくある質問
  • 開発
    • バックエンド
      • DifySandbox
        • 貢献ガイド
    • モデルの統合
      • Hugging Faceのオープンソースモデルを統合
      • Replicateのオープンソースモデルを統合
      • Xinferenceでデプロイしたローカルモデルを統合
      • OpenLLMでデプロイしたローカルモデルを統合
      • LocalAIでデプロイしたローカルモデルを統合
      • Ollamaでデプロイしたローカルモデルを統合
      • LiteLLM Proxyを使用してモデルを統合する
      • GPUStackとの統合によるローカルモデルのデプロイ
      • AWS Bedrock上のモデル(DeepSeek)の接続
    • 移行
      • コミュニティ版を v1.0.0 に移行する
  • もっと読む
    • 活用事例
      • DeepSeek & Dify連携ガイド:多段階推論を活用したAIアプリケーション構築
      • Ollama + DeepSeek + Dify のプライベートデプロイ:あなた自身のAIアシスタントの構築方法
      • あなた専用のQAチャットボットのトレーニング方法
      • コードなしでMidjourney プロンプトボットを作成する方法
      • Notion AI アシスタントを構築する
      • 数分で業務データを持つ公式サイトのAIチャットボットを作成する方法
      • DifyチャットボットをWixサイトに統合する方法
      • AWS Bedrockのナレッジベースに統合する方法
      • Difyで大規模言語モデルの「競技場」を体験する方法:DeepSeek R1 VS o1 を例に
      • Difyスケジューラーの構築
      • DifyクラウドでAI Thesis Slack Botを構築
    • さらに読む
      • LLMOpsとは何ですか?
      • 配列変数とは何ですか?
      • 検索拡張生成(RAG)
        • ハイブリッド検索
        • Rerank
        • リトリーバルモード
      • プロンプトエンジニアリング
      • DifyでJSONスキーマ出力を使用する方法
    • FAQ
      • ローカルデプロイに関するFAQ
      • LLM設定と使用に関するFAQ
      • プラグイン
  • ポリシー
    • オープンソースライセンス
    • ユーザ規約
      • 利用規約
      • プライバシーポリシー
      • 合規性レポートの入手方法
Powered by GitBook
On this page
  • 概要
  • 繰り返し処理ノードと反復処理ノードの違い
  • 繰り返し処理(ループ)ノードの設定方法
  • サンプル1:ループノードの使い方
  • サンプル2:ループ変数とループ終了ノードの使い方
  1. マニュアル
  2. ワークフロー
  3. ノードの説明

繰り返し処理(ループ)

概要

繰り返し処理(ループ)ノードは、前回の結果に依存する反復タスクを実行し、終了条件を満たすか最大繰り返し回数に達するまで継続します。

繰り返し処理ノードと反復処理ノードの違い

タイプ
特徴
用途

繰り返し処理(ループ)

各回の処理が前回の結果に依存する。

前回の計算結果を必要とする処理に適している。

反復処理(イテレーション)

各回の処理は独立しており、前回の結果に依存しない。

データの一括処理など、各処理を独立して実行できるタスクに適している。

繰り返し処理(ループ)ノードの設定方法

パラメータ
説明
例

ループ終了条件

ループを終了するタイミングを決定する式

x < 50、error_rate < 0.01

最大繰り返し回数

無限ループを防ぐための繰り返し回数の上限

10、100、1000

ループ変数

反復ごとにデータが受け渡され、ループ終了後も後続ノードで利用可能です。

変数 x < 50 はループごとに1ずつ増加し、ループ内では x < 50 の値に基づいて計算を実行できます。ループ終了後、x < 50 の最終値は後続の処理で利用可能です。

ループ終了ノード

ループ内でこのノードに到達すると、ループが終了します。

終了条件に関係なく、最大10回ループします。

ループ終了ノードとループ終了条件はどちらもループの終了トリガーとして機能し、いずれかの条件が満たされるとループは早期に終了します。

終了条件が設定されていない場合、ループは最大ループ回数に達するまで継続して実行されます(while (true)と同等です)。

サンプル1:ループノードの使い方

要件:1〜100の乱数を生成し、乱数が50未満になったら停止します。

実装手順:

  1. ループノードで、ループ終了条件をテンプレートノードの出力がdoneになるように設定します。

  2. コード実行ノードを使用して、1〜100の乱数を生成します。

  3. 条件分岐ノードを使用して、乱数が50より大きいかどうかを判断します。

  • 50以上の場合、現在の数字を出力し、ループを継続して新しい乱数を生成します。

  • 50未満の場合、最終出力数字を出力し、テンプレートノードを経由してdoneを出力し、ループを終了します。

  1. 乱数が50未満になると、ループは自動的に停止します。

サンプル2:ループ変数とループ終了ノードの使い方

要件:ループワークフローを使用して詩を生成し、段階的に書き直し、各出力は前のループの結果に基づきます。ループは4回実行された後に自動的に停止します。

実装手順:

  1. ループノードで、各イテレーションでデータを渡すために使用する ループ変数 を設定します。

  • num(ループ回数):初期値は0で、ループごとに+1されます。

  • verse(詩の内容):初期値は I haven't started creating yet で、後続の各ループで更新されます。

  1. 条件分岐ノードを使用して、ループ回数が3より大きいかどうかを判断します。

  • 3 より大きい場合、ループ終了ノードに到達し、ループを終了します。

  • 3 以下の場合、LLMノードに到達し、ループを継続します。

  1. LLMノードを使用して、ユーザーの入力と過去の作品に基づいて詩の内容を出力するようにモデルに指示します。

プロンプト例:

  • ユーザーの入力sys.queryをもとに、ヨーロッパの長詩を作成してください。

  • 前回の作成結果verseを参考に、新しい詩句で進歩と革新を示してください。

  • 詩句がヨーロッパ文学のスタイルと伝統に合致し、韻律と意境に注意してください。

最初のループでは、verseはI haven't started creating yetです。それ以降の各ループでは、前のループの出力に基づいて詩が更新されます。モデルが生成した新しい詩は毎回verse変数を上書きし、次のループで使用されます。

  1. 変数設定ノードを使用して、各ループの後にループ内の変数を更新します。

  • num変数を更新し、ループごとに+1します。

  • verse変数をモデルが新しく生成した詩の内容に更新し、前のループの詩の内容を直接上書きします。

  1. 詩のインスピレーションを入力すると、モデルは4つのバージョンの詩を出力します。各詩は前の詩に基づいて生成されます。

PreviousツールNextショートカットキー

Last updated 2 months ago

初級ループワークフロー
ステップ