LESSON

応答品質の評価

「エージェントが回答を返す。だがその回答は本当に良い回答か?」

田中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-JudgeGPT-4oで自動品質評価
定量化各軸1-5点で定量的にトラッキング
継続改善低スコア回答のパターン分析と改善

チェックリスト

  • 回答品質の5つの評価軸を説明できる
  • LLM-as-Judgeの仕組みを理解した
  • 品質メトリクスのサマリーを作成できる
  • 低品質回答の改善サイクルを設計できる

次のステップへ

応答品質の評価を学んだ。次は顧客満足度の測定を学ぼう。

推定読了時間: 30分