> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # 文字差異評分器 `createTextualDifferenceScorer()` 函式會使用序列比對來衡量兩個字串之間的文字差異。它會提供變更的詳細資訊,包括將一段文字轉換成另一段文字所需的操作次數。 ## 參數 `createTextualDifferenceScorer()` 函式不接受任何選項。 此函式會傳回 MastraScorer 類別的執行個體。如需 `.run()` 方法及其輸入/輸出的詳細資訊,請參閱 [MastraScorer 參考文件](https://mastra.zisheng.pro/zh-TW/reference/evals/mastra-scorer)。 ## `.run()` 傳回值 **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 } ``` ## 評分詳情 此評分器會計算數項衡量結果: - **相似度比率**:根據文字之間的序列比對結果計算(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/zh-TW/reference/evals/run-evals)。 如需將此評分器新增至 Agent,請參閱[評分器概觀](https://mastra.zisheng.pro/zh-TW/docs/evals/overview)指南。 ## 相關資源 - [內容相似度評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/content-similarity) - [完整度評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/completeness) - [關鍵字覆蓋率評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/keyword-coverage)