> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/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-HK/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-HK/reference/evals/run-evals)。 如要將此評分器加入 Agent,請參閱[評分器概覽](https://mastra.zisheng.pro/zh-HK/docs/evals/overview)指南。 ## 相關內容 - [忠實度評分器](https://mastra.zisheng.pro/zh-HK/reference/evals/faithfulness)