質問分類器ノードの活用

dify-docs-use-question-classifier-node

質問分類器(Question Classifier)ノードは、ユーザーの入力内容をLLMを用いて自動的に分類し、その結果に応じて後続の処理フロー(特定のナレッジ参照、別のプロンプト実行、エージェントへの委譲など)を分岐させるための機能です。 ユーザーの意図を初期段階で適切に振り分けることで、回答の品質向上と処理効率の最適化を実現します。

主な活用シーン

入力内容に応じて「参照すべき情報」や「実行すべきアクション」が異なるケースで特に有効です。

  • 製品・仕様の質問: 製品マニュアルやFAQナレッジを検索するフローへ
  • トラブル・サポート: 障害切り分け手順や問い合わせフォーム作成フローへ
  • 会社・事務的な質問: 会社概要、規程、採用情報などのナレッジへ
  • その他(雑談等): 汎用LLMによる通常の会話フローへ

設定手順

1. ノードの配置

ワークフロー内のユーザー入力直後、または意図判定を行いたい箇所に「質問分類器」ノードを配置します。

2. モデルの設定

分類タスクに使用するLLMモデルを選択します。

分類処理は回答生成よりも短文・低負荷で済むことが多いため、gpt-4o-mini や gemini-flash などの軽量かつ高速なモデルを選択すると、コストとレスポンス速度のバランスが良くなります。

3. クラス(分類先)の定義

分岐させたいカテゴリー(クラス)を作成し、それぞれの判定基準を記述します。

  1. 「+ クラスを追加」をクリック: 必要な数だけクラスを作成します(例: Product_QA, Support, General)。
  1. クラス名を入力
  1. 説明(分類条件)を入力: 各クラスに分類されるべき基準を自然言語で記述します。

設定のコツ

  • 境界を明確にする: 「〜に関する質問」だけでなく、「〜は含まない」といった除外条件も記述すると精度が向上します。
  • 具体例を含める: ユーザーが実際に投げかけそうな質問例を数パターン記述することで、LLMが意図を汲み取りやすくなります。

フロー構成イメージ

graph LR
Start[開始] --> QC{質問分類器}
QC -->|製品質問| K1[製品ナレッジ検索]
QC -->|サポート| K2[サポートナレッジ検索]
QC -->|会社情報| K3[社内規定検索]
QC -->|その他| LLM[汎用チャット]
K1 --> Ans[回答生成]
K2 --> Ans
K3 --> Ans
LLM --> Ans

ベストプラクティス

  1. 「その他(Others)」クラスの設置 どの定義にも当てはまらない質問を受け止めるためのクラスを必ず用意してください。これがないと、予期せぬ質問が無理やり他のカテゴリに分類され、誤回答の原因となります。
  1. クラス数は3〜5個程度に抑える クラスが多すぎると分類精度が低下し、管理も複雑になります。細分化が必要な場合は、一度大きく分類した後、後続のフローでさらに分類器を通す「多段階分類」を検討してください。
  1. 定期的なテストと改善 実際のログを確認し、誤分類が発生している場合は「クラス定義(条件文)」を修正するか、迷いやすい事例を例文として定義に追加してください。
お役に立ちましたか?
😞
😐
🤩

最終更新日 February 20, 2026