> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # 答案相關性評分器 `createAnswerRelevancyScorer()` 函式接受包含下列屬性的單一選項物件: ## 參數 **model** (`LanguageModel`): 用於評估相關性的模型設定。 **uncertaintyWeight** (`number`): 評分時給予 'unsure' 判定的權重(0-1)。 (Default: `0.3`) **scale** (`number`): 最高分數值。 (Default: `1`) 此函式會傳回 MastraScorer 類別的執行個體。`.run()` 方法接受與其他評分器相同的輸入(請參閱 [MastraScorer 參考文件](https://mastra.zisheng.pro/zh-TW/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":內容不相關時給予零權重 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/zh-TW/reference/evals/run-evals)。 若要將此評分器加入 Agent,請參閱[評分器概觀](https://mastra.zisheng.pro/zh-TW/docs/evals/overview)指南。 ## 相關資源 - [忠實度評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/faithfulness)