> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # 答案相关性 Scorer `createAnswerRelevancyScorer()` 函数接受一个 options 对象,其中包含以下属性: ## 参数 **model** (`LanguageModel`): 用于评估相关性的模型配置。 **uncertaintyWeight** (`number`): 评分时赋予 'unsure' 判定的权重(0-1)。 (Default: `0.3`) **scale** (`number`): 最高分值。 (Default: `1`) 此函数返回 MastraScorer 类的实例。`.run()` 方法接受与其他 Scorer 相同的输入(参见 [MastraScorer 参考](https://mastra.zisheng.pro/reference/evals/mastra-scorer)),但返回值包含下文所述的 LLM 特有字段。 ## `.run()` 返回值 **runId** (`string`): 本次运行的 id(可选)。 **score** (`number`): 相关性分数(0 到 scale,默认为 0-1) **preprocessPrompt** (`string`): 预处理步骤发送给 LLM 的 prompt(可选)。 **preprocessStepResult** (`object`): 包含提取语句的对象:{ statements: string\[] } **analyzePrompt** (`string`): 分析步骤发送给 LLM 的 prompt(可选)。 **analyzeStepResult** (`object`): 包含结果的对象:{ results: Array<{ result: 'yes' | 'unsure' | 'no', reason: string }> } **generateReasonPrompt** (`string`): 生成原因步骤发送给 LLM 的 prompt(可选)。 **reason** (`string`): 对分数的说明。 ## 评分详情 该 Scorer 通过查询与答案的匹配程度评估相关性,会考虑完整性和详细程度,但不考虑事实准确性。 ### 评分流程 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/reference/evals/run-evals)。 要将此 Scorer 添加到 Agent,请参阅 [Scorer 概览](https://mastra.zisheng.pro/docs/evals/overview)指南。 ## 相关内容 - [Faithfulness Scorer](https://mastra.zisheng.pro/reference/evals/faithfulness)