複数のLLMを活用したワークフローの作成手順
Difyを利用して複数のLLMを組み合わせたワークフローを作成する手順について解説する。本記事では、基本的な設定からAPIとしての利用方法、運用時の注意点までを網羅する。
1. Difyのインストール(Dockerを使用)
DifyはDockerコンテナとして導入するのが手っ取り早い。
参考文献
2. モデルプロバイダーへのローカルLLMの登録
ワークフローを作成する前に、モデルプロバイダーとしてローカルで動作するOpenAI互換APIサーバー(Open WebUI)を登録する。
-
Difyにログインする
Difyのダッシュボードにアクセスし、アカウントにログインする。 -
モデルプロバイダーの設定を開く
画面右上のアカウントアイコンをクリックし、「設定」を選択する。次に「モデルプロバイダー」タブを開く。 -
OpenAI-API-Compatibleモデルを追加する
「OpenAI-API-Compatible」の項目で「モデルを追加」をクリックする。 -
モデル情報を入力する
以下の情報を入力する。- モデル名: Open Webui側でpull済みのモデル名を選択(例: gemma2:latest)
-
エンドポイント:
http://host.docker.internal:3000/v1
- APIキー: Open WebUI側で設定したAPIキーを登録
-
モデルを保存する
入力内容を確認し、「保存」をクリックする。
これで、DifyからローカルのOpenAI互換APIサーバーにアクセスできるようになる。
※疎通やAPIキーの認証に失敗すると登録できない
3. 複数のLLMを活用したワークフローの作成手順
ステップ1: 新しいワークフローを作成する
- ダッシュボードから「ワークフロー」を選択し、「新しいワークフローを作成」をクリックする。
- ワークフロー名と説明を入力する。
ステップ2: ブロックを配置する
- 必要なLLMブロックをドラッグアンドドロップで配置する。
- 各ブロックに使用するモデルとパラメータを設定する。
ステップ3: ブロック間を接続する
- 各ブロックを線でつなぎ、データフローを定義する。
- 条件分岐やループ処理が必要な場合は、対応するブロックを使用する。
4. 作成したワークフローの動作確認手順
ステップ1: 入力値を確認する
- ワークフローに適切な入力値を設定する。
- 必要に応じてダミーデータを利用する。
ステップ2: 実行する
- ワークフローを実行し、ログを確認する。
- 各ステップの出力内容を検証する。
ステップ3: デバッグする
- 出力結果に誤りがある場合、問題のあるブロックを特定する。
- パラメータや条件を修正して再実行する。
5. Difyで作成したワークフローをAPIとして利用可能な状態にする
ステップ1: API公開設定を行う
- ワークフロー設定画面で「APIを有効化」にチェックを入れる。
- 必要に応じて認証トークンを設定する。
ステップ2: エンドポイントを確認する
- APIエンドポイントURLをコピーする。
- 入力パラメータと出力形式を確認する。
6. APIを公開する(有効化する)
- ワークフローの「公開設定」を開く。
- 「APIを有効化」にチェックを入れる。
- 保存後、エンドポイントURLが生成される。
7. ワークフローの更新を反映する
- ワークフローの編集を完了したら「保存」をクリックする。
- APIとして利用している場合、更新内容が即時反映される。
8. ワークフローの「終了」ブロックで出力変数を指定していないため結果が返ってこない
- 出力が得られない場合、「終了」ブロックの設定を確認する。
- 出力変数が指定されているか確認し、必要なデータを明示的に設定する。
9. Difyワークフローの利点
-
メトリクス情報の閲覧
ワークフローの実行状況や性能をリアルタイムで確認できる。 -
各ステップの処理内容を詳細に確認可能
特にLLM系ブロックでは応答の全文が確認できるため、デバッグが容易である。 -
API利用時の詳細なログ追跡が可能
ワークフローのログには各ステップの処理内容が記録されており、外部からAPIを利用している場合でもトラブルシューティングが簡単に行える。