DifyでFAQボットを構築し、社内に展開した後で「なんとなく答えがズレることがある」「たまに見当違いな回答が返る」という声が上がることは多い。しかし「なんとなく」のままでは改善できない。どのパラメータを変えれば効果が出るのか、ドキュメントを追加すれば解消するのか、判断できないからだ。
本記事では、Difyを使った社内FAQボットの精度を数値で把握する方法と、測定結果をもとにした改善サイクルの回し方を解説する。専用の評価ツールは不要で、スプレッドシートとDifyの標準機能だけで実践できる。
なぜ定量評価が必要か
感覚的な評価だけで運用を続けると、次の3つの問題が積み重なる。
🐝 IroHive メモ RAGシステムの評価は本来 RAGAS などの評価フレームワークを使うのが理想だが、情シス業務で毎月ライブラリを走らせるのは現実的でない。本記事ではツールなし・スプレッドシートのみで実践できる方法に絞る。
評価の3軸
RAGシステムの精度評価は「検索」と「生成」の2段階に分解して考えると整理しやすい。情シス視点ではここに「ユーザー体験」を加えた3軸で見るのが実用的だ。
主な指標:Hit Rate
主な指標:回答一致率
主な指標:拒否率・サムズアップ率
③は定性的になりがちだが、Difyの「いいね/よくない」ボタン(後述のアノテーション)や「分かりません」の回答率(拒否率)で定量化できる。
テスト質問セットの作り方
評価の土台となるのがゴールドセット(Gold Set)と呼ばれるテスト質問集だ。「正解が明確な質問と回答のペア」を20〜30問用意し、毎月同じセットで測定することで変化を追う。
質問の4タイプ
- 実際に社員から届いた問い合わせメールを参考にすると現実的な質問になる
- 正解(期待する回答)は「〇〇文書 第3条に記載の通り、〜」と根拠も併記する
- スプレッドシートで「質問 / 期待回答 / ソース文書 / Hit Rate / 回答判定」を管理する
サンプル質問セット(7問)
以下は就業規則・経費・テレワーク規程を想定したサンプルだ。自社の質問に置き換えて使ってほしい。
| No | タイプ | 質問 | 期待する回答(要点) | ソース文書 |
|---|---|---|---|---|
| 1 | 事実確認 | 有給休暇は入社何ヶ月後から使えますか? | 入社6ヶ月後から付与(10日) | 就業規則 第○条 |
| 2 | 事実確認 | 育児休業の取得期間は最長何年ですか? | 子が2歳になるまで(最長2年) | 育児・介護休業規程 第○条 |
| 3 | 手順確認 | 経費精算はどのシステムで、申請期限はいつですか? | ○○システム・翌月5日まで | 経費精算マニュアル p.3 |
| 4 | 手順確認 | テレワーク申請の手順を教えてください。 | 上長承認→総務へメール→前日17時まで | テレワーク規程 第4条 |
| 5 | あいまい | 休みを取りたいときはどうすればいい? | 有給休暇申請フローへ誘導 | 就業規則 第○条 |
| 6 | あいまい | パソコンの調子が悪いんだけど | ITヘルプデスクへの問い合わせ方法を案内 | IT機器トラブル対応フロー |
| 7 | NG型 | 来月の株価はどうなりますか? | 「この情報はナレッジベースにありません」等の拒否 | (なし) |
Dify ゴールドセット評価ツール
サンプル7問プリセット済み。ボタンをクリックするだけで Hit Rate・回答一致率・拒否率を自動計算。評価データはブラウザに自動保存、月切り替えで履歴管理、CSV出力も可能。
Difyのログ確認とアノテーション機能
Difyでは実運用の会話ログを確認し、回答に評価を付ける機能が備わっている。現行(v1.x)では ログ閲覧 と アノテーション返信 は別々の画面・機能として分かれている点に注意。
📌 UI構成メモ(v1.x 現行) 旧バージョンに存在した「ログ&アノテーション」という統合画面はなくなっており、現在は以下の2箇所に分離されています。
① ログの確認手順
- Dify 管理画面 → 対象アプリを選択
- 左サイドバーの 「ログ」 をクリック
- 会話ログの一覧が表示される。確認したい会話を開くと、各ターンの回答に 👍 / 👎 のフィードバックボタンが表示される
② アノテーション(注釈)の管理
ログで見つけた「正しい回答」を登録しておくと、同じ質問が来たとき RAG より優先して返答させる仕組みが アノテーション返信(注釈) だ。
- 対象アプリ → 左サイドバーの 「注釈」 をクリック
- 「注釈を追加」ボタンで正解の質問・回答ペアを登録できる
- 初回利用時は埋め込みモデルと類似度しきい値(Similarity Threshold)の設定が必要
📌 サイドバーの構成(日本語 UI) アプリの左サイドバーには「オーケストレート / API アクセス / ログ / 注釈 / 監視」が並んでいる。ログと注釈はどちらもサイドバーから1クリックで開ける。
🐝 IroHive メモ アノテーション返信は「ナレッジベースに情報がない質問」や「LLMが誤答しやすい質問」を個別に補強するのに有効。月次レビューで 👎 をつけた回答の正解を Annotations に登録していくと、徐々に精度が底上げされる。
評価に使うログの選び方
3つの定量指標
ゴールドセットをDifyで実行し、結果をスプレッドシートに記録して以下の3指標を算出する。月1回の測定で十分だ。
① Hit Rate(チャンク取得率)
Hit Rate = 正しいチャンクが取得された質問数 ÷ 総質問数 × 100
確認方法:対象アプリのサイドバー →「オーケストレート」→ 右側のデバッグパネルで質問を送信する。回答の下に「引用と帰属(参照チャンク)」が表示されるので、期待するドキュメントのチャンクが含まれているかを目視で確認し、スプレッドシートに ○/× を記録する。
② 回答一致率
回答一致率 = 期待回答と一致した質問数 ÷ 総質問数 × 100
一致の判定基準(3段階):
◎ 完全一致 — 数値・固有名詞を含む内容がすべて合っている
○ 部分一致 — 概ね正しいが補足情報が欠けている
✕ 不一致 — 事実誤認または「分かりません」(期待回答が存在するのに)
✅ 一致率のスプレッドシート例 各行に「質問 / 期待回答 / 実際の回答 / 判定(◎/○/✕)」を記録し、◎=2点・○=1点・✕=0点 で合計点を満点(質問数×2)で割ると 0〜100% のスコアになる。毎月同じシートに列を追加していくだけで推移グラフが作れる。
③ 拒否率(「分かりません」率)
拒否率 = 「分かりません」と返した質問数 ÷ 総質問数 × 100
解釈のポイント:NG型質問での拒否は正常(正解)。事実確認型・手順確認型での拒否が高い場合は、スコアしきい値が高すぎるか、ドキュメントにその情報が含まれていない。
改善サイクルの回し方
月1回の評価を定着させるには「やること」を最小限に絞ることが重要だ。以下のルーティンを基本として自社に合わせて調整してほしい。
月次評価ルーティン(所要時間:約60〜90分)
指標と改善アクションの対応表
| 指標の状態 | まず試すアクション | それでも改善しない場合 |
|---|---|---|
| Hit Rate が低下した | top_k を 3(デフォルト)→ 6 に上げる | チャンクサイズを 600→500 に縮小。それでも改善しなければドキュメントを見直し、情報が散在していれば統合する |
| 回答一致率が低下した | システムプロンプトを見直し、回答形式を再指定 | LLMモデルを変更(GPT-4o-mini → GPT-4o 等) |
| 拒否率が上がった | スコアしきい値を 0.5 → 0.35 に下げる | 該当質問のドキュメントをナレッジベースに追加 |
| 拒否率が下がりすぎた | システムプロンプトに不確か情報の扱いを追記 | スコアしきい値を 0.5 → 0.6 に上げる |
| 全指標が安定している | ゴールドセットに新規質問を追加して鮮度維持 | ナレッジベースの再インデックス(ドキュメント更新確認) |
🐝 IroHive メモ パラメータを複数同時に変えると何が効いたか分からなくなる。1回の改善サイクルで変更するのは1〜2項目までと決めておくこと。次回の測定で効果が出ていれば継続、出ていなければ元に戻して別の施策を試す。
まとめ
- 上記CSVテンプレートをダウンロードし、自社の質問でNo.8以降を埋める(まず20問で十分)
- 質問タイプの比率:事実確認40% / 手順30% / あいまい20% / NG型10%
- オーケストレート画面のデバッグパネルでゴールドセットを1問ずつ送信 → ○/× と ◎/○/✕ を記録
- サイドバーの「ログ」で 👎 ログと長いターンの会話を月次レビュー → 改善済み回答を「注釈」に登録
- 目標:Hit Rate 90%以上 / 回答一致率 80%以上
- 1サイクルでパラメータ変更は1〜2項目まで(複数同時変更NG)
- ゴールドセットに2〜3問追加して陳腐化を防ぐ
FAQボットは作って終わりではなく、定期的な計測と小さな改善の積み重ねで精度を維持・向上させるものだ。本記事の3指標とゴールドセットを運用の定番手順として組み込み、月1回60〜90分の評価ルーティンを習慣にしてほしい。
参考資料
- Dify 公式ドキュメント — Logs(Monitor > Logs)
- Dify 公式ドキュメント — Annotation System(アノテーション返信)
- RAGAS(RAG評価フレームワーク)GitHub — より高度な自動評価を導入したい場合
- Dify — Retrieval Settings(スコアしきい値・Top K)
📌 バージョン注記 本記事の手順・UI表記は Dify v1.x 系(2026年7月時点)をもとにしています。メニュー名・画面構成はバージョンによって変わる場合があります。公式ドキュメントと照合しながらご利用ください。