MENU

【チャットフロー】Patient Intake Chatbot:自動問診・診療科提案システム

当ページのリンクには広告が含まれています。

病院やクリニックの受付業務において、患者様の症状を聞き取り、適切な診療科へ案内する「トリアージ」や「問診」のプロセスは、専門知識と時間を要する業務です。

Difyの「Patient Intake Chatbot(患者受付チャットボット)」テンプレートは、対話形式で患者の基本情報(年齢・性別・症状)を自動的に収集し、AIが適切な診療科を提案する高度なワークフローです。

この記事では、Dify標準テンプレートをベースに、GeminiとGPT-4oを適材適所に配置して最適化したモデルの内部構成を解説します。

目次

Patient Intake Chatbotとは:対話型自動問診システム

このチャットボットは、ユーザーとの会話を通じて必要な情報(年齢、性別、症状)が揃うまで質問を繰り返し、全ての情報が集まった段階で診断(診療科の提案)を行うシステムです。

例えば、ユーザーが「お腹が痛いです」とだけ伝えた場合、ボットは自動的に「年齢と性別を教えてください」と不足情報を聞き返します。

一度に「20代男性、腹痛があります」と入力された場合は、即座に診療科を提案します。このように状況に応じた柔軟な対応が可能です。

Difyで構築する機能概要

本テンプレートでは、以下のロジックで問診を実行します。

  • 情報の抽出:ユーザーの入力から必要なパラメータ(年齢・性別・症状)を抽出します。
  • 不足確認(スロットフィリング):必須項目が埋まっているかを確認し、未入力があれば質問を行います。
  • 診療科の提案:全ての情報が揃った段階で、GPT-4oが適切な診療科を判断して回答します。
Dify Patient Intake Chatbot ワークフロー図

【重要】最適化モデルのワークフロー詳細(ノード表)

このテンプレートは、条件分岐(IF/ELSE)を駆使して、ユーザーの入力状態に合わせた最適なレスポンスを生成します。

以下は、実際に動作する完成版モデルの全ノード構成と設定内容です。

アイテム名(ノード名)処理内容・設定詳細
開始 (Start)ワークフローの開始 ユーザーに対し、性別、年齢、症状の入力を求めます。一括入力でも分割入力でも対応可能な設計です。 初期変数:age, gender, symptoms(全て空でスタート)
最初のメッセージですか? (IF/ELSE)初回判定 会話のラリーが1回目かどうかを判定します。
・IF(初回):一括抽出処理へ
・ELSE(2回目以降):不足情報の個別確認へ
【IF:初回の場合】
 ∟ 患者情報の抽出  (Parameter Extractor)一括情報抽出(使用AI:Gemini 2.5 Pro) ユーザーの最初のメッセージから、年齢・性別・症状の3要素を可能な限り抽出します。
 ∟ 年齢・性別・症状を割り当て  (Variable Assigner)変数の更新 抽出されたデータをそれぞれの変数(age, gender, symptoms)に保存します。
 ∟ 出力=0 / フラグ更新ステータス管理 「最初のメッセージ」フラグを更新し、次回のループでELSEルートに入るようにします。
変数アグリゲータ (Variable Aggregator)情報の統合 これまでの会話で蓄積された変数の状態を整理します。
【ELSE:2回目以降(不足確認)】どの情報が足りないかを判定し、分岐します。
 ∟ IF (年齢が空)年齢確認フロー 変数 age が空の場合に実行されます。
  ∟ 患者の年齢を抽出   (LLM)年齢の聞き取り(使用AI:Gemini 1.5 Flash) ユーザーの直前の回答から年齢情報を抽出します。
  ∟ 年齢を割り当て抽出した年齢を変数 age に保存します。
  ∟ チャット(年齢別)(LLM)(使用AI:Gemini 1.5Flash)次の質問(性別や症状)へ誘導、または年齢がまだ不明な場合は再度質問します。
 ∟ ELSEIF (性別が空)性別確認フロー 変数 gender が空の場合に実行されます。
  ∟ 患者の性別の抽出   (LLM)性別の聞き取り(使用AI:Gemini 1.5 Flash) ユーザーの回答から性別情報を抽出します。
  ∟ 性別を割り当て抽出した性別を変数 gender に保存します。
  ∟ チャット(性別別)(LLM)(使用AI:Gemini 1.5Flash)次の質問へ誘導します。
 ∟ ELSEIF (症状が空)症状確認フロー 変数 symptoms が空の場合に実行されます。
  ∟ 患者の症状の抽出   (LLM)症状の聞き取り(使用AI:Gemini 1.5 Flash) ユーザーの回答から具体的な症状を抽出します。
  ∟ チャット(性別別)(LLM)(使用AI:Gemini 1.5Flash)次の質問へ誘導します。
  ∟ 症状を割り当て抽出した症状を変数 symptoms に保存します。
 null は変数に含まれますか? (IF/ELSE)完了判定 全ての変数(年齢・性別・症状)が埋まっているかを確認します。
・IF(欠けがある):不足している項目について質問する回答を生成。
・ELSE(全て揃った):診断フェーズへ移行。
【ELSE:診断フェーズ】
 ∟ 推奨部門  (LLM)診療科の提案(使用AI:GPT-4o) 集まった3つの情報を基に、受診すべき診療科とその理由、緊急性の有無などを総合的に判断します。 ※GPT-4oの高度な推論能力を利用。
 ∟ 部門を割り当て診断結果を保存します。
 ∟ 回答  (Answer)最終案内 ユーザーに「推奨される診療科:〇〇科」とアドバイスを表示します。

DifyでPatient Intake Chatbotを構築・有効化する手順

以下の手順で、この自動問診システムを自身のワークスペースに展開できます。

  1. テンプレートの選択:Difyダッシュボードの「探索」から「Patient Intake Chatbot」を選択し、「ワークスペースに追加」をクリックします。
  2. アプリ設定:アプリ名(例:自動問診ボット)を設定し、作成します。
  3. ノードの確認:ワークフローキャンバスにて、上記のノード表通りに条件分岐(IF/ELSE)が設定されているか確認します。特に「不足情報の確認ループ」が正しく接続されているかが重要です。
  4. モデル設定:抽出タスクには高速なGemini Flash、最終判断には高精度なGPT-4oが割り当てられているか確認し、APIキーを設定します。
  5. 動作確認(プレビュー):プレビュー機能使い、「腹痛がします」→「年齢は?」→「30歳です」といった対話形式で情報が埋まっていくかテストします。

このテンプレートを活用するメリット

最大のメリットは、「必要な情報が揃うまで粘り強く、かつ自然に対話を続ける」システムが構築済みな点です。

  • 受付業務の効率化:基本的な問診を自動化することで、医療スタッフの負担を軽減し、待ち時間を短縮できます。
  • 情報の漏れ防止:システムが必須項目(年齢・性別等)の入力を強制的にチェックするため、聞き漏らしがなくなります。
  • 柔軟な入力対応:「30歳男性、頭痛」と一言で入力しても、「頭が痛い」とだけ入力しても、どちらにも適切に対応できます。

まとめ

Patient Intake Chatbotテンプレートは、医療現場における「問診」をモデルにしていますが、その本質は「ユーザーから必要な情報を過不足なくヒアリングする」という汎用的なタスクです。

この仕組みは、不動産の条件ヒアリング、採用面接の一次対応、カスタマーサポートの初期振り分けなど、様々なビジネスシーンに応用可能です。

ミラーマスター合同会社では、このようなヒアリング型チャットボットの導入支援や、既存の予約システムとのAPI連携などのカスタマイズ開発も承っております。窓口業務の自動化をご検討の際は、ぜひお気軽にご相談ください。


【推奨】業務システム化に有効なアイテム

生成AIを学ぶ

システム化のパートナー(ミラーマスター合同会社)

VPSサーバの選定

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次