> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # 回答関連性スコアラー `createAnswerRelevancyScorer()` 関数は、次のプロパティを持つ単一のオプションオブジェクトを受け取ります。 ## パラメーター **model** (`LanguageModel`): 関連性の評価に使用するモデルの設定。 **uncertaintyWeight** (`number`): スコアリングで 'unsure' の判定に与える重み(0〜1)。 (Default: `0.3`) **scale** (`number`): スコアの最大値。 (Default: `1`) この関数は MastraScorer クラスのインスタンスを返します。`.run()` メソッドは他のスコアラーと同じ入力を受け取ります([MastraScorer リファレンス](https://mastra.zisheng.pro/ja/reference/evals/mastra-scorer)を参照)。ただし、戻り値には以下の LLM 固有フィールドが含まれます。 ## `.run()` の戻り値 **runId** (`string`): 実行 ID(任意)。 **score** (`number`): 関連性スコア(0〜scale、デフォルトは 0〜1)。 **preprocessPrompt** (`string`): 前処理ステップで LLM に送信されたプロンプト(任意)。 **preprocessStepResult** (`object`): 抽出された文を持つオブジェクト: { statements: string\[] } **analyzePrompt** (`string`): 分析ステップで LLM に送信されたプロンプト(任意)。 **analyzeStepResult** (`object`): 結果を持つオブジェクト: { results: Array<{ result: 'yes' | 'unsure' | 'no', reason: string }> } **generateReasonPrompt** (`string`): 理由生成ステップで LLM に送信されたプロンプト(任意)。 **reason** (`string`): スコアの説明。 ## スコアリングの詳細 スコアラーは、完全性と詳細度を考慮しながらクエリと回答の整合性を通じて関連性を評価しますが、事実の正確性は評価しません。 ### スコアリング処理 1. **文の前処理:** - コンテキストを維持しながら、出力を有用な文に分割します。 2. **関連性の分析:** - 各文を次のように評価します。 - "yes": 直接一致する場合は最大の重み - "unsure": おおよそ一致する場合は部分的な重み(デフォルト: 0.3) - "no": 関連のない内容には重み 0 3. **スコアの計算:** - `((direct + uncertainty * partial) / total_statements) * scale` ### スコアの解釈 関連性スコアは 0〜1 です。 - **1.0**: 回答は関連性の高い的確な情報でクエリに完全に答えています。 - **0.7〜0.9**: 回答はクエリにほぼ答えていますが、関連の薄い内容が少し含まれる場合があります。 - **0.4〜0.6**: 回答はクエリに部分的に答えており、関連する情報と関連しない情報が混在しています。 - **0.1〜0.3**: 回答に関連する内容はわずかしかなく、クエリの意図をほとんど満たしていません。 - **0.0**: 回答はまったく関連がなく、クエリに答えていません。 ## 例 さまざまなシナリオで Agent の回答の関連性を評価します。 ```typescript import { runEvals } from '@mastra/core/evals' import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createAnswerRelevancyScorer({ model: 'openai/gpt-5.6-sol' }) const result = await runEvals({ data: [ { input: 'What are the health benefits of regular exercise?', }, { input: 'What should a healthy breakfast include?', }, { input: 'What are the benefits of meditation?', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, reason: scorerResults[scorer.id].reason, }) }, }) console.log(result.scores) ``` `runEvals` の詳細については、[runEvals リファレンス](https://mastra.zisheng.pro/ja/reference/evals/run-evals)を参照してください。 このスコアラーを Agent に追加する方法については、[スコアラーの概要](https://mastra.zisheng.pro/ja/docs/evals/overview)ガイドを参照してください。 ## 関連項目 - [忠実性スコアラー](https://mastra.zisheng.pro/ja/reference/evals/faithfulness)