> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # 文本差异 Scorer `createTextualDifferenceScorer()` 函数使用序列匹配来衡量两个字符串之间的文本差异。它会提供详细的变更信息,包括将一段文本转换为另一段文本所需的操作次数。 ## 参数 `createTextualDifferenceScorer()` 函数不接受任何选项。 此函数返回 MastraScorer 类的实例。有关 `.run()` 方法及其输入/输出的详情,请参阅 [MastraScorer 参考](https://mastra.zisheng.pro/reference/evals/mastra-scorer)。 ## `.run()` returns **runId** (`string`): 运行 ID(可选)。 **analyzeStepResult** (`object`): 包含差异指标的对象:{ confidence: number, changes: number, lengthDiff: number } **score** (`number`): 相似度比率(0-1),其中 1 表示文本完全相同。 `.run()` 返回以下结构的结果: ```typescript { runId: string, analyzeStepResult: { confidence: number, ratio: number, changes: number, lengthDiff: number }, score: number } ``` ## 评分详情 该 Scorer 会计算以下几项指标: - **相似度比率**:基于文本之间的序列匹配(0-1) - **更改数**:所需的不匹配操作数量 - **长度差异**:文本长度差异的归一化结果 - **置信度**:与长度差异成反比 ### 评分流程 1. 分析文本差异: - 对输入和输出执行序列匹配 - 统计所需的更改操作数量 - 衡量长度差异 2. 计算指标: - 计算相似度 - 确定置信度分数 - 合并为加权分数 最终分数: `(similarity_ratio * confidence) * 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 { createTextualDifferenceScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createTextualDifferenceScorer() const result = await runEvals({ data: [ { input: 'Summarize the concept of recursion', groundTruth: 'Recursion is when a function calls itself to solve a problem by breaking it into smaller subproblems.', }, { input: 'What is the capital of France?', groundTruth: 'The capital of France is Paris.', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, groundTruth: scorerResults[scorer.id].groundTruth, }) }, }) console.log(result.scores) ``` 有关 `runEvals` 的更多详情,请参阅 [runEvals 参考](https://mastra.zisheng.pro/reference/evals/run-evals)。 要将此 Scorer 添加到 Agent,请参阅 [Scorer 概述](https://mastra.zisheng.pro/docs/evals/overview)指南。 ## 相关内容 - [Content Similarity Scorer](https://mastra.zisheng.pro/reference/evals/content-similarity) - [Completeness Scorer](https://mastra.zisheng.pro/reference/evals/completeness) - [Keyword Coverage Scorer](https://mastra.zisheng.pro/reference/evals/keyword-coverage)