応答品質の評価
「エージェントが回答を返す。だがその回答は本当に良い回答か?」
田中VPoEが品質基準を示す。
「正確性、有用性、丁寧さ、網羅性。複数の軸で回答品質を評価し、継続的に改善する仕組みが必要だ。」
品質評価の5軸
| 軸 | 定義 | 評価方法 |
|---|---|---|
| 正確性 | FAQ情報に基づいた正確な回答か | LLM-as-Judge |
| 有用性 | 問い合わせに対して役立つ回答か | LLM-as-Judge |
| 丁寧さ | 適切な敬語と配慮がある回答か | ルールベース |
| 網羅性 | 質問のすべての側面に回答しているか | LLM-as-Judge |
| 簡潔性 | 冗長ではなく要点を押さえているか | 文字数 + LLM |
LLM-as-Judgeによる自動評価
def evaluate_response_quality(inquiry, response, faq_context):
"""LLMで回答品質を自動評価"""
llm = ChatOpenAI(model="gpt-4o", temperature=0)
prompt = f"""
以下のカスタマーサポート回答の品質を評価してください。
## 問い合わせ
{inquiry}
## FAQ情報
{faq_context}
## AIの回答
{response}
## 評価基準(各1-5点)
1. 正確性: FAQ情報に基づいた正確な回答か(5=完全に正確, 1=誤り含む)
2. 有用性: 問い合わせに対して役立つ回答か(5=非常に有用, 1=無関係)
3. 丁寧さ: 敬語と配慮があるか(5=完璧, 1=不適切)
4. 網羅性: 質問のすべてに回答しているか(5=完全, 1=未回答多数)
5. 簡潔性: 冗長でなく要点を押さえているか(5=最適, 1=冗長)
JSON形式で評価結果を返してください。
"""
result = llm.invoke(prompt)
return result.content
定量的メトリクス
class ResponseMetrics:
"""応答品質の定量メトリクス"""
def __init__(self):
self.evaluations = []
def add_evaluation(self, eval_result):
self.evaluations.append(eval_result)
def summary(self):
"""品質サマリー"""
if not self.evaluations:
return {}
metrics = {}
for axis in ['accuracy', 'helpfulness', 'politeness', 'completeness', 'conciseness']:
scores = [e.get(axis, 0) for e in self.evaluations]
metrics[axis] = {
'mean': round(np.mean(scores), 2),
'std': round(np.std(scores), 2),
'min': min(scores),
'max': max(scores),
}
metrics['overall'] = round(np.mean([
metrics[a]['mean'] for a in metrics
]), 2)
return metrics
まとめ
| 項目 | ポイント |
|---|---|
| 5軸評価 | 正確性/有用性/丁寧さ/網羅性/簡潔性 |
| LLM-as-Judge | GPT-4oで自動品質評価 |
| 定量化 | 各軸1-5点で定量的にトラッキング |
| 継続改善 | 低スコア回答のパターン分析と改善 |
チェックリスト
- 回答品質の5つの評価軸を説明できる
- LLM-as-Judgeの仕組みを理解した
- 品質メトリクスのサマリーを作成できる
- 低品質回答の改善サイクルを設計できる
次のステップへ
応答品質の評価を学んだ。次は顧客満足度の測定を学ぼう。
推定読了時間: 30分