Difyには、AIによる文章生成を担うLLMブロックを中心として、入力を解析・分類するブロックや外部APIと連携するブロック、フローを制御するブロックなど、さまざまな機能があります。これらのブロックをドラッグ&ドロップで組み合わせることで、ローコード(少ないコード、あるいはコードレス)で高度なAIワークフローを構築できるようになります。
以下では、各ブロックを機能や用途別に詳しく解説し、具体的な活用例として3つのサンプルアプリケーション例もあわせて紹介します。
Difyのブロックと活用ポイント
1. LLM
- 概要: GPTなどの大規模言語モデルを呼び出すためのブロック。
- ユースケース:
- カスタマーサポートの自動応答: 「○○の製品保証は何年ですか?」といった問い合わせに対し、製品マニュアルから抜粋して回答を生成。
- SNS投稿の作成支援: ユーザーが指定したテーマ(例:新商品のPR)を基に、キャッチーなツイートやFacebook投稿文面を生成。
2. 知識取得
- 概要: 自社のFAQや外部データベースから該当情報を検索・取得するブロック。
- ユースケース:
- 顧客向けFAQシステム: 「宅配便の再配達を依頼したい」「ポイントの有効期限を知りたい」といった質問に対し、FAQを検索した上で答えを返す。
- 社内ドキュメント検索: エンジニアが「パスワードリセットの手順」を検索すると、社内Wikiの該当ページを取り出し要約する。
3. 終了
- 概要: ワークフローを終了し、応答を確定させるブロック。
- ユースケース:
- APIレスポンスの返却: Dify内で組み立てた結果を最終的にユーザーへ返す、または他システムにJSONレスポンスを返す。
- エラーハンドリング: エラー時に適切なメッセージを出して終了する。
4. エージェント
- 概要: 連続した推論や複数ステップのタスクを自律的に実行するためのブロック。
- ユースケース:
- リサーチボット: 「Aという商品とBという商品の評判を比較して教えて」と入力したとき、外部APIや検索ブロックを繰り返し呼び出し、情報を整理して結果をまとめる。
- 議事録自動作成: 会議音声の書き起こしテキストを段階的に要約し、アクションアイテムを抽出、さらに完了後は参加者へのメモ送信まで行う。
5. 質問の分類器
- 概要: ユーザー入力やテキストをカテゴリ別に振り分けるブロック。
- ユースケース:
- 問い合わせ種別判定: 「クレーム」「在庫確認」「注文変更」などに自動分類して担当部署を振り分ける。
- 感情分析ツールとの連携: ユーザーが感情的な単語を使っているか(喜び、怒り、悲しみ)などを判定し、緊急度の高い問い合わせには即座に注意を促すフローへ分岐する。
6. ロジック
- 概要: 後述するIF/ELSEやイテレーションを含め、プログラミング的な制御をまとめるコンテナ。
- ユースケース:
- 多段条件の整理: 「ユーザーの年齢が20歳以上」かつ「購入回数が5回以上」なら○○プランを適用、など複数条件をまとめて管理。
7. IF/ELSE
- 概要: 条件によってワークフローを分岐させるブロック。
- ユースケース:
- 多言語対応のチャットボット: 入力された言語が日本語か否かを判定し、日本語でない場合は翻訳ブロックを経由してから回答する。
8. イテレーション
- 概要: リストや配列に含まれる要素を1つずつ繰り返し処理するブロック。
- ユースケース:
- 一括タグ付け処理: ユーザーが複数枚の画像URLを送信した場合、画像分析APIに1枚ずつリクエストして結果を集約。
- 大量テキストの連続要約: 10件のニュース記事をイテレーションで回してそれぞれ要約し、最後に全部まとめてメール送信。
9. 変換
- 概要: フォーマット変換や正規表現によるテキスト置換などを行うブロック。
- ユースケース:
- 日付フォーマット変換: ユーザーが入力した「2025年3月10日」を「2025-03-10」形式に変換してDBへ登録。
- 電話番号の正規化: ハイフン付き・括弧付きなどバラバラの形式を一括して「090XXXXYYYY」形式に変える。
10. コード
- 概要: カスタムスクリプトを記述し、高度なロジックやライブラリを呼び出せるブロック。
- ユースケース:
- 特殊データ解析: たとえば株価のテクニカル指標(MACDやボリンジャーバンドなど)をPythonで計算してから、その結果をLLMに渡して投資助言メッセージを生成させる。
11. テンプレート
- 概要: テキストのひな形を用意し、変数を差し込みながら動的に文章を生成するブロック。
- ユースケース:
- メール送信の定型文: 「{{ユーザー名}}様、〇〇の件についてご連絡いたします…」のような差し込みを自動化。
- LLMへのプロンプト作成: 「以下の情報を考慮して回答してください:{{検索結果}}」といった形式で指示文を自動生成。
12. 要約集約器
- 概要: 複数のテキストをAIでまとめ、一つの要約を作るブロック。
- ユースケース:
- 会議議事録の要約: 複数の発言メモを1つにまとめて読みやすくする。
- SNSやレビューサイトのコメント収集: 製品に関する口コミを一覧取得し、要点だけを短くまとめる。
13. テキスト抽出ツール
- 概要: 正規表現やキーワードマッチングなどでテキストから必要な情報を抜き出すブロック。
- ユースケース:
- URL・メールアドレス抽出: ユーザー投稿から連絡先メールアドレスを自動取得。
- 予約情報の取り出し: 「○月○日の13時にお願いしたいです」という文章から日時情報を抽出。
14. 変数代入
- 概要: 他のブロックやユーザーからの入力を変数に格納し、再利用できるようにするブロック。
- ユースケース:
- 連続する処理でのデータ保持: ユーザーIDや問い合わせIDなどを保存し、フローの各ステップで参照。
15. パラメーター抽出
- 概要: JSONやURLクエリなどから特定のフィールドを取り出すブロック。
- ユースケース:
- APIレスポンス解析: たとえば
{"name": "iPhone", "price": 120000}
からprice
を取り出して後続の処理に渡す。
- APIレスポンス解析: たとえば
16. HTTPリクエスト
- 概要: 外部WebサービスやREST APIへGET/POSTなどのリクエストを送るブロック。
- ユースケース:
- 在庫システム連携: 商品情報を外部APIで取得し、在庫数を参照してからレコメンド文を生成。
- 翻訳API連携: 文章を翻訳サービスに送って結果を受け取り、LLMと組み合わせる。
17. リスト処理
- 概要: リスト全体に対してフィルタリングやソート、マッピングなどを行うブロック。
- ユースケース:
- 商品データの一括変換: 価格が一定以上の商品だけを抽出する、文字列で定義されたカテゴリをIDに変換するなど、一括操作が可能。
より具体的な3つのサンプルシナリオ
シナリオ1: ECサイトのカスタマーサポート自動化
- ユーザー入力受信
- チャット経由で「購入した商品が届かない」という問い合わせ。
- 質問の分類器で問い合わせ内容を「配送関係のクレーム」と判定。
- HTTPリクエスト: 顧客が入力した注文番号を用いて、外部の配送状況APIから情報取得。
- パラメーター抽出: JSONレスポンスから「配送ステータス=遅延中」を取得。
- テンプレート: 「お客様の商品は現在、{{status}} となっております…」という返信文を準備。
- LLM: 配送遅延の理由を分かりやすく説明する文章を生成(荒天や交通規制などの想定理由を問い合わせ)。
- 終了: 上記を合成し、「現在の状況」と「今後の見通し」をまとめてユーザーへ返答。
メリット
- 問い合わせの自動処理により、オペレーターの負担を大幅に軽減。
- 遅延理由や見通しをAIが柔軟に文章化し、顧客満足度の向上に繋げる。
シナリオ2: リアルタイムSNSトレンド要約ツール
- HTTPリクエスト: Twitter APIなどから特定のハッシュタグを含むツイートをリアルタイム収集。
- イテレーション: 取得したツイートを1件ずつ巡回し、LLMに「要約」させる。
- テキスト抽出ツール: ツイート内の「URL」「ハッシュタグ」などを抜き出し、参考リンクとして保持。
- リスト処理: 要約文と抽出したリンクをまとめ、重複を削除し整理。
- 要約集約器: 全体の傾向を一括でまとめる短いレポートをAIに作成させる。
- テンプレート: 「今話題のポイントは○○、関連リンクは××です」といった形でレポートを生成。
- 終了: レポートをSlackなどに自動投稿して社内共有。
メリット
- SNSの生の声をリアルタイムで収集・要約し、複数人に向けて一斉配信可能。
- マーケティングチームがトレンドを素早くキャッチして施策を検討できる。
シナリオ3: 教育コンテンツ生成&学習進捗管理
- コース選択: 学習者が「英語リーディング基礎」を選択。
- 知識取得: 自社の教材データベースから、リーディング教材をピックアップしてテキストを取得。
- LLM: 教材文をレベルに応じて難易度を調整し、学習者向けに読みやすい文章にリライト。
- テキスト抽出ツール: 「重要単語」「キーフレーズ」を抽出し、語彙リストを作成。
- テンプレート: 学習者向けクイズや穴埋め問題のひな形を用意。
- イテレーションまたはリスト処理: 語彙リストを1つずつクイズ形式(英単語→日本語選択)に変換し、複数問題を自動生成。
- 変数代入: 学習者IDに紐づけて進捗(正答数や学習回数)を保持。
- 終了: 最終的に学習結果を可視化したレポートを表示するか、メールで通知する。
メリット
- 既存教材をAIでリライトし、学習者のレベルに合わせた教材に自動変換。
- 新規コンテンツ作成のコスト削減と、学習データの蓄積による精度向上が期待できる。
まとめと次のステップ
Difyのブロックは、以下のような流れで組み合わせると設計しやすいです。
- 入力の分類/パラメーター抽出:
- 例: 質問の分類器やテキスト抽出ツール、パラメーター抽出でユーザー入力を分析。
- 外部データ取得:
- 例: HTTPリクエストや知識取得で必要な情報を持ってくる。
- ロジック・制御:
- 例: IF/ELSEやイテレーション、リスト処理で条件分岐や繰り返し処理を行う。
- 生成AIとの連携:
- 例: LLMやエージェントを呼び出してテキスト生成や高度な推論を実行。
- 仕上げの整形/要約/テンプレート化:
- 例: 変換・要約集約器・テンプレートなどで最終出力を整える。
- フロー終了:
- 例: 終了ブロックでユーザーへの回答やシステムへのレスポンスを確定。
このように、ブロックの組み合わせにより、チャットボット/ドキュメント要約/マルチステップのデータ処理/学習教材生成など多様なAIアプリケーションをローコードで実装可能です。実際の導入では、自社の業務フローを洗い出し、どの部分を自動化・高度化できるか検討してみてください。Difyが提供するブロックが、業務のさまざまなシーンでスピーディなAI活用をサポートしてくれるはずです。
コメント