回答精度の改善 — ログから原因を特定して対処する

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

チャットボットを公開したら、次は回答精度の改善です。最初から完璧な回答が返ることはまずありません。実際の質問に対してどう答えたかをログで確認し、FAQ 資料やプロンプトを調整していくサイクルを回します。

この記事では、Dify の会話ログの確認方法、うまく答えられなかった質問の分類と対処法、改善前後の比較方法をまとめています。

会話ログを確認する

会話ログで原因を切り分ける

Difyのログ画面の見方

Dify の管理画面で、公開したアプリの「ログとアノテーション」を開くと、ユーザーとチャットボットのやり取りが一覧で確認できます。各会話をクリックすると、以下の情報が表示されます。

  • ユーザーの質問文 — 実際にどんな言葉で質問されたか
  • チャットボットの回答 — どう答えたか
  • 参照されたチャンク — ナレッジベースのどの FAQ がヒットしたか
  • トークン数 — その会話で消費されたトークン数

特に重要なのは「参照されたチャンク」です。チャットボットが的外れな回答をしたとき、原因がナレッジベースの検索にあるのか、LLM の回答生成にあるのかを切り分けるための手がかりになります。

トークン数も確認しておきます。1回あたりのトークン消費量を把握しておくと、月間コストの見積もりに使えます。記事2で試算した「入力500トークン+出力500トークン」の想定と大きくずれていないかチェックしてください。

うまく答えられなかった質問を分類する

うまく答えられなかった質問の3分類

ログを確認して「この回答はダメだ」と判断したものを、原因別に分類します。原因によって対処法が違うため、まず分類してから手を打ちます。

FAQ資料に情報がなかった

そもそも FAQ に書かれていない質問です。ナレッジベースの検索結果にも関連するチャンクが表示されていないはずです。

対処法は単純で、その質問と回答を FAQ 資料に追加します。新しい質問が来るたびに FAQ が充実していくので、回答精度は時間とともに上がっていきます。

情報はあるが検索で引っかからなかった

FAQ には答えが書いてあるのに、ナレッジベースの検索でヒットしなかったケースです。ログの「参照されたチャンク」に、本来ヒットすべき FAQ が含まれていません。

原因と対処法は以下のとおりです。

原因対処法
FAQ の質問文と実際の質問の言い回しが違いすぎるFAQ の質問文を、ユーザーが実際に使う言葉に書き換える。同じ質問を別の言い回しで複数登録するのも有効
FAQ の回答が短すぎてベクトルの特徴量が不足回答に具体的な情報を追記する。キーワードが増えると検索にヒットしやすくなる
チャンク分割が正しくないナレッジベースのチャンク一覧を確認し、1つの Q&A が複数チャンクに分かれていないかチェック

ナレッジベースの「検索テスト」画面で、ユーザーの質問文をそのまま入力してみると、何がヒットして何がヒットしていないかが確認できます。

検索結果はあるがAIの回答が不適切だった

正しい FAQ がヒットしているのに、LLM の回答がおかしいケースです。FAQ の内容を読み間違えている、余計な情報を付け加えている、トーンが合っていないなどが該当します。

これはプロンプト(SYSTEM 指示文)の調整で対処します。具体的な調整パターンは後述します。

FAQ資料を追加・修正して再学習する

FAQの差し替え手順

ドキュメントの差し替え手順

FAQ 資料を修正したら、Dify のナレッジベースに反映する必要があります。手順は以下のとおりです。

  • ナレッジベースの「ドキュメント」一覧を開く
  • 修正した FAQ ファイルと同じファイルを選択し、無効化または削除する
  • 修正済みの FAQ ファイルを新たにアップロードする
  • チャンク分割の設定を前回と同じにして「保存して処理」を実行する
  • 検索テストで修正が反映されていることを確認する

カテゴリごとにファイルを分けておいたのは、ここで効いてきます。修正が必要なカテゴリのファイルだけを差し替えればよく、全ファイルをアップロードし直す必要はありません。

プロンプトを調整する

プロンプト調整パターン

調整のパターンと具体例

プロンプト(SYSTEM 指示文)の調整は、FAQ 資料の修正と並んで回答精度を上げるための重要な手段です。よくある調整パターンを紹介します。

問題プロンプトへの追加例
回答が長すぎる「回答は3文以内で簡潔にまとめてください」
余計な情報を付け加える「提供された情報に含まれていない内容は絶対に追加しないでください」
トーンが堅すぎる「お客様に話しかけるような柔らかい敬語で回答してください」
「わかりません」が多すぎる「関連する情報が少しでもあれば、その範囲で回答してください」
質問の意図を読み違える「ユーザーの質問に最も関連性の高い情報を優先してください」

プロンプトの調整はすぐに反映されます。FAQ 資料の差し替えと違い、再アップロードや再学習の必要がないため、気軽に試行錯誤できます。

改善前後の回答を比較する

改善前後の比較方法

FAQ の追加やプロンプトの調整を行ったら、必ず改善前後の回答を比較します。Dify のプレビュー画面で同じ質問を投げ直して、回答がどう変わったかを確認してください。

比較のポイントは3つです。

  • 正確さ — FAQ に書かれた内容と一致しているか
  • 過不足 — 余計な情報が追加されていないか、必要な情報が欠けていないか
  • トーン — サイトの雰囲気に合った言葉遣いになっているか

改善のサイクルは「ログ確認 → 原因の分類 → FAQ またはプロンプトの修正 → 比較確認」の繰り返しです。一度にすべてを完璧にしようとせず、問題のあった質問から1つずつ対処していくのが現実的です。

なお、改善作業中にトークン消費量が増える場合があります。プレビューでのテストもトークンを消費するため、改善が一段落したら OpenAI の Usage ダッシュボードで使用量を確認しておくと安心です。コストの詳しい確認方法は次の記事でまとめます。

次の記事では、日常の運用フロー、FAQ の更新手順、よくあるトラブルと対処法、コストの管理方法をまとめます。