Skip to content

2_担当判断型社内問い合わせワークフロー

このドキュメントは、Dify でワークフローを作成するための演習手順書です。

1. 説明

ユーザーからの社内問い合わせを入力すると、AIが内容を「人事」「情シス」「総務」の適切な部署に自動で振り分け、各部署の専門ナレッジから最適な回答を生成するワークフローです。 「質問の分類」と「専門知識に基づく回答」を自動化することで、窓口業務の負担を軽減し、迅速で正確な社内サポートを実現します。

Tips:モデルによる設定の違い

GPTモデルとGeminiモデルでは設定内容に違いがあります。 特にワークフローやチャットフローのLLMノードでは、GPTモデルはSYSTEMプロンプトのみ必須ですが、GeminiモデルではUSERプロンプトが必須です。この演習手順ではGeminiモデルをデフォルトにしているため、USERプロンプトを設定する手順となっています。

2. 使用するノード

  1. ユーザー入力(開始ノード): 問い合わせ内容(質問)を受け取る。
  2. 質問分類器ノード: 質問内容から「人事」「情シス」「総務」のいずれかに分類する。
  3. 知識検索ノード: 分類された部署に対応するナレッジベースから関連情報を取得する。
  4. LLMノード: 取得した情報に基づき、各部署の窓口として回答を作成する。
  5. 出力(終了ノード): 生成された回答をユーザーに表示する。

3. Dify設定手順

手順①:ナレッジの構築

演習環境では事前に登録済みなのでこの作業は不要です。

各部署の規定ファイルについて順にナレッジへの登録を行います。

  • 人事:human_resources.md
  • 情シス:it_support.md
  • 総務:general_affairs.md
  1. Dify上部メニューの「ナレッジ」をクリック ⇒ 「ナレッジベースを作成」をクリック。
  2. ファイルまたはフォルダをドラッグアンドドロップ」の部分に、各部署の規定ファイルをアップロードして「次へ」。
  3. チャンク設定:デフォルトのまま「チャンクをプレビュー」をクリック。
  4. インデックス方法:デフォルトのまま「高品質」を選択。
  5. 埋め込みモデル: デフォルトのまま「text-embedding-3-small」を選択。
  6. 検索設定: 「ハイブリッド検索」を選択。
  7. 保存して処理をクリック。

手順②:ワークフローアプリの作成

  1. 上部メニューから「スタジオ」を選択。
  2. 最初から作成」→「ワークフロー」を選択。
  3. アプリ名:ワークフロー:担当判断型社内問い合わせワークフロー
  4. 説明:社内問い合わせがどの部署に対しての問い合わせか振り分けを行い、担当部署のナレッジから回答するワークフロー。
  5. 作成する」をクリック。

手順③:ワークフローの設定

開始ノードとして「ユーザー入力」を選択してワークフローの構築を開始します。
ワークフローのキャンバス上には、ユーザー入力ノードだけが配置されている状況です。 以下の作業を行い、ノードを順に配置・設定していきます。

1. ユーザー入力ノード

  1. ワークフローの編集画面でユーザー入力ノードを選択します。
  2. 入力フィールド」の「+」をクリックして、入力フィールドを設定します。
    1. タイプ:段落
    2. 変数名inquiry
    3. ラベル名:質問入力
    4. 最大長:3000
    5. デフォルト値
      人事・情シス・総務に関する質問に答えます。質問を入力してください。
      
    6. 必須をチェック
    7. 保存をクリック

2. 質問分類器ノード

  1. ユーザー入力ノードの右にある「+」をクリックして、「質問分類器」を追加します。
  2. 入力変数{{inquiry}} を選択。
  3. モデルgemini-2.5-flash-lite
  4. クラス設定:以下の3つのクラスを追加します。
    ラベル名:人事
    説明:休暇、勤怠、在宅勤務、出張、精算、人事制度、評価、福利厚生に関する問い合わせ
    
    ラベル名:情シス
    説明:PC、アカウント、パスワード、VPN、ネットワーク、ソフトウェア、セキュリティに関する問い合わせ
    
    ラベル名:総務
    説明:備品、会議室、入館、施設、郵送、社内イベント、オフィス環境に関する問い合わせ
    

3. 知識検索ノード(分岐の作成)

質問分類器の各ラベルから、問い合わせ内容に応じたナレッジを参照する設定を行います。まずは人事のルートを作成し、それを複製して他の部署(情シス・総務)のルートを作成します。

1. 知識検索ノード(人事)の設定
  1. 質問分類器ノードの「人事」ラベルの右にある「+」をクリックして、表示される一覧から「知識検索」を選んでノードを追加します。 以下の操作は、画面の右に出る設定画面で行います。
  2. 設定画面上部のノード名を「知識検索_人事」に変更します。
  3. クエリテキスト:クリックして {{inquiry}} (ユーザー入力)を選択します。
  4. ナレッジベース:事前に作成した「human_resources.md」を選択して追加をクリックします。
2. ノードの複製と他部署への設定
  1. 作成した「知識検索_人事」ノードを右クリックし、「複製」を選択して2つコピーを作成します。
  2. 複製したノードをそれぞれ、質問分類器の「情シス」「総務」ラベルと線でつなぎます。
  3. それぞれの設定画面を開き、以下の通り変更します。
    • 情シスルート
      • ノード名:「知識検索_情シス
      • ナレッジベース:「it_support.md」に変更
    • 総務ルート
      • ノード名:「知識検索_総務
      • ナレッジベース:「general_affairs.md」に変更

4. LLMノード(回答作成)

各部署のナレッジから得られた情報をもとに、回答文を生成する設定を行います。こちらも人事ルートをベースに作成・複製します。

1. LLMノード(人事)の設定
  1. 「知識検索_人事」ノードの右にある「+」をクリックして、「LLM」ノードを追加します。
  2. ノード名を「LLM_人事」に変更します。
  3. モデルgemini-3.0-flash-preview
  4. コンテキスト:クリックして 知識検索_人事 result を選択します。
  5. システムプロンプト(SYSTEM)

    あなたは社内の担当部署の窓口です。
    以下の問い合わせに対して、参照されたナレッジの内容に基づき回答してください。
    
    【担当部署】
    {{質問分類器.class_name}}
    
    【参照ルール】
    {{#context#}}
    
    【出力形式】
    1. 担当部署:
    2. 回答(3〜6行)
    
    【重要】
    - ナレッジに書いていないことは断定しない
    - 不明な場合は「担当部署へ確認してください」と案内する
    

  6. ユーザープロンプト(USER)
    +メッセージ追加をクリックし、以下を入力します。

    【問い合わせ】
    {{inquiry}}
    

↑{{変数}}の設定部分は手入力の必要があります

上記の{{変数名}}の部分は、これ以前のノードで設定した変数を指定するものです。 コピーペーストするだけでは認識されないので、手入力で「{」または「/」を入力して表示される変数候補の中から選んでください。

2. ノードの複製と修正
  1. LLM_人事」ノードを右クリックし、「複製」を選択して2つコピーを作成します。
  2. 複製したノードをそれぞれ「知識検索_情シス」「知識検索_総務」ノードと線でつなぎます。
  3. 各ノードの設定画面で、以下のコンテキスト変数を正しく指定し直します。
  4. LLM_情シス:コンテキストを {{知識検索_情シス result}} に変更
  5. LLM_総務:コンテキストを {{知識検索_総務 result}} に変更
↑{{変数}}の設定部分は手入力の必要があります

上記の{{変数名}}の部分は、これ以前のノードで設定した変数を指定するものです。 コピーペーストするだけでは認識されないので、手入力で「{」または「/」を入力して表示される変数候補の中から選んでください。

5. 出力ノード

  1. 各LLMノードの右にある「+」をクリックして、「出力」を追加します(すべてのルートを一つの出力ノードに集約します)。
  2. 出力変数の右の「+」をクリックして、以下の3つの変数を設定します。
  3. result_humanLLM_人事 text
  4. result_itLLM_情シス text
  5. result_generalLLM_総務 text

手順④:保存する

画面右上の「公開する」→「更新を公開」をクリックします。変更が保存されます。

Warning

Dify では、上記の保存作業を行うと、保存とともに公開設定がされ、
環境によっては Dify にログインしていないユーザーでもアプリにアクセス可能 になります。

限定したい場合は、左上のアプリ名をクリックし、Web App とバックエンドサービス APIをオフにしてください。
※ 公開可否や利用範囲については、事前に管理者へ確認してください。


4. 動作確認

画面右上のテスト実行をクリックし、以下の3つの質問を入力して、意図した部署から回答が行われるか確認してください。


入力例①:人事(在宅勤務)

入力

在宅勤務を週3日にしたいのですが、申請は必要ですか?

模範出力(ポイント解説)

  • 想定分類: 人事
  • 回答の要点: 原則週2日までの制限や、上長への相談・申請が必要である旨が回答される。

入力例②:情シス(VPNトラブル)

入力

VPNがつながりません。エラーが出ていて仕事ができないです。

模範出力(ポイント解説)

  • 想定分類: 情シス
  • 回答の要点: ネット接続の確認、PC再起動、VPNクライアントの更新などのトラブルシューティングが提示される。

入力例③:総務(備品)

入力

マウスを購入したいのですが、勝手に買ってもいいですか?
(情シスに分類されることもあります。誤分類を減らすためには、主に質問分類器を調整します。)

模範出力(ポイント解説)

  • 想定分類: 総務
  • 回答の要点: 原則として事前申請が必要であること、申請フォームの場所などが案内される。