3_福利厚生の申請一次審査&申請作成ワークフロー
このドキュメントは、Dify でワークフローを作成するための演習手順書です。
1. 説明
福利厚生関連の「一次審査」を自動化するAIワークフローです。 社員からの相談内容を入力すると、AIが社内規定(ナレッジ)を参照して「判定:【OK】」または「判定:【不備あり】」を自動で判定します。 OKの場合は申請メール文章を作成し、不備がある場合はその理由を回答することで、人事部門の一次対応を効率化します。
Tips:モデルによる設定の違い
GPTモデルとGeminiモデルでは設定内容に違いがあります。 特にワークフローやチャットフローのLLMノードでは、GPTモデルはSYSTEMプロンプトのみ必須ですが、GeminiモデルではUSERプロンプトが必須です。この演習手順ではGeminiモデルをデフォルトにしているため、USERプロンプトを設定する手順となっています。
2. 使用するノード
- 知識検索ノード: 相談内容に基づき、関連する社内規定をナレッジから取得。
- LLMノード①(内容分析): 規定に基づき、合否判定(OK/不備あり)を行う。
- 質問分類器ノード: 判定結果に応じて、その後の処理を分岐させる。
- LLMノード②(申請メッセージ作成): 審査通過時に、申請用メール文面を作成する。
3. Dify設定手順
手順①:ナレッジの構築
演習環境では事前に登録済みなのでこの作業は不要です。
- Dify上部メニューの「ナレッジ」をクリック ⇒ 「ナレッジベースを作成」をクリック 。
- 「ファイルまたはフォルダをドラッグアンドドロップ」の部分に「benefits_regulations.md」をアップロードして「次へ」 。
- チャンク設定:デフォルトのまま「チャンクをプレビュー」をクリック。画面右に表示されるプレビューで、規定情報が並ぶのを確認する。
- インデックス方法:デフォルトのまま「高品質」を選択。
- 埋め込みモデル: デフォルトのまま「text-embedding-3-small」を選択。
- 検索設定: 「ハイブリッド検索」を選択。詳細の設定はデフォルトのまま。
- 保存して処理をクリック。
- 埋め込みが完了しましたと表示されたら先に進みます。
手順②:ワークフローアプリの作成
- 上部メニューから「スタジオ」を選択。
- 「最初から作成」→「ワークフロー」を選択。
- アプリ名:ワークフロー:申請一次審査&申請作成ワークフロー
- 説明:福利厚生関連の「一次審査」を自動化するAIワークフロー。OKの場合は申請メール文章を作成します。
- 「作成する」をクリック 。
手順③:ワークフローの設定
開始ノードとして「ユーザー入力」を選択してワークフローの構築を開始します。
ワークフローのキャンバス上には、ユーザー入力ノードだけが配置されている状況です。
以下の作業を行い、ノードを順に配置・設定していきます。
1. ユーザー入力ノード
- ワークフローの編集画面でユーザー入力ノードを選択します。以下の操作は、画面の右に出る設定画面で行います。
- 「入力フィールド」の「+」をクリックして、入力フィールドを設定します。
- タイプ:段落
- 変数名:
request_text - ラベル名:相談内容
- 最大長:5000
- デフォルト値:
入力例:先月、応用情報技術者に合格したので、お祝い金の申請をしたいです。 - 必須をチェック
- 保存をクリック
2. 知識検索ノード
- ユーザー入力ノードの右にある「+」をクリックして、表示される一覧から「知識検索」を選んでノードを追加します。
- 設定画面上部のノード名を「知識検索」に変更します。
- クエリテキスト:クリックして
request_textを選択。 - ナレッジベース:手順①で作成した「benefits_regulations.md」を選択して追加をクリック。
3. LLM①ノード(LLM_内容分析)
- 知識検索ノードの右にある「+」をクリックして、表示される一覧から「LLM」を選んでノードを追加します。
- 設定画面の上部のノード名を「LLM_内容分析」に変更します。
- モデル:
gemini-3-flash-preview -
システムプロンプト(SYSTEM):
あなたは親切な人事の一時審査ボットです。 【社内規定】を読み、社員からの【相談内容】について以下の手順で回答を作成してください。 1. どの制度についての相談かを特定する。 2. 規定(金額や期限、対象者など)に合っているかを確認する。 3. 最後に必ず「判定:【OK】」または「判定:【不備あり】」のどちらかを明記して回答を締めくくってください。 【社内規定】: {{#context#}} -
ユーザープロンプト(USER):
+メッセージ追加をクリックし、USERに以下を入力します。【相談内容】: {{request_text}}
↑{{変数}}の設定部分は手入力の必要があります
上記の{{request_text}}の部分は、ユーザー入力ノードで作成した変数を指定するものです。手入力で「{」または「/」を入力して表示される変数候補の中から選んでください。
4. 質問分類器ノード
- LLM_内容分析ノードの右にある「+」をクリックして、表示される一覧から「質問分類器」を選んでノードを追加します。
- 入力変数:クリックして
LLM_内容分析の textを選択。 - モデル:
gemini-2.5-flash-lite - 分類(クラス)設定:
- クラス1:
合格: 「判定:【OK】」という言葉が含まれている場合 - クラス2:
不備あり: 「判定:【不備あり】」という言葉が含まれている場合
5. LLM②ノード(LLM_申請メッセージ作成)
- 質問分類器のクラス1(合格)の右にある「+」をクリックし、「LLM」を追加します。
- 設定画面上部のノード名を「LLM_申請メッセージ作成」に変更します。
- モデル:
gemini-3-flash-preview -
システムプロンプト(SYSTEM):
一次審査を通過しました。内容分析から、「申請用メールメッセージ」をコードブロック形式で作成してください。丁寧なメール文面ではなく申請に必要な淡泊な内容にしてください。 ユーザーの入力が必要な欄には「★書き換えてください」と記入してください。 -
ユーザープロンプト(USER):
+メッセージ追加をクリックし、USERに以下を入力します。【内容分析】: {{LLM_内容分析の text}}
↑{{変数}}の設定部分は手入力の必要があります
上記の{{変数名}}の部分は、これ以前のノードで設定した変数を指定するものです。 コピーペーストするだけでは認識されないので、手入力で「{」または「/」を入力して表示される変数候補の中から選んでください。
6. 終了ノード(2箇所)
- LLM②(合格ルート)の次に「出力」ノードを追加します。
- ノード名:
出力_OK - LLM1_result:
LLM_内容分析の text(LLM_内容分析の出力) -
LLM2_result:
LLM_申請メッセージ作成の text(LLM_申請メッセージ作成の出力) -
質問分類器のクラス2(不備ありルート)の次に「出力」ノードを直接追加します。
- ノード名:
出力_NG - LLM1_result:
LLM_内容分析の text(LLM_内容分析の出力)
手順④:保存する
画面右上の「公開する」→「更新を公開」をクリックします。変更が保存されます。
Warning
Dify では、上記の保存作業を行うと、保存とともに公開設定がされ、
環境によっては Dify にログインしていないユーザーでもアプリにアクセス可能 になります。
限定したい場合は、左上のアプリ名をクリックし、Web App とバックエンドサービス APIをオフにしてください。
※ 公開可否や利用範囲については、事前に管理者へ確認してください。
4. 動作確認
画面右上のテスト実行をクリックし、作成したワークフローのプレビュー画面を開き、以下のケースを入力して、意図した通りの判定と分岐が行われるか確認してください。
ケース①:【OK】資格取得(ITパスポート)
入力
先月ITパスポートに合格しました。受験料とお祝い金を申請したいです。
期待される出力ポイント
- 判定結果:資格取得支援制度の対象である旨と、報奨金10,000円が支給される旨が表示され、「判定:【OK】」が出力される。
- 申請メッセージ:ITパスポート合格に伴う報奨金および受験料の精算申請メール文章が作成される。
ケース②:【OK】特別休暇(配偶者の出産)
入力
昨日、妻が出産したので明日から3日間休みをいただけますか?
期待される出力ポイント
- 判定結果:慶弔休暇の規定(3日間の有給休暇)に合致する旨が表示され、「判定:【OK】」が出力される。
- 申請メッセージ:慶弔休暇の申請用メール文章が作成される。
ケース③:【不備あり】家賃補助(年齢制限)
入力
35歳で世帯主です。会社のすぐ隣に住んでいるので家賃補助の3万円を申請します。
期待される出力ポイント
- 判定結果:家賃補助の対象が「30歳未満の社員」であるため、規定外である旨が表示され、「判定:【不備あり】」で締めくくられる。
- 挙動:質問分類器によって不備ありルートに進み、申請用メール文章は作成されない。