文本差異評分器
createTextualDifferenceScorer() 函式使用序列配對,量度兩個字串之間的文本差異。它會提供變更的詳細資料,包括將一段文本轉換成另一段文本所需的操作數目。
參數參數 的直接連結
createTextualDifferenceScorer() 函式不接受任何選項。
此函式會傳回 MastraScorer 類別的實例。有關 .run() 方法及其輸入/輸出的詳情,請參閱 MastraScorer 參考。
.run() 傳回值run-returns 的直接連結
runId:
string
執行的 ID(選填)。
analyzeStepResult:
object
包含差異指標的物件:{ confidence: number, changes: number, lengthDiff: number }
score:
number
相似度比率(0 至 1),1 表示文本完全相同。
.run() 會傳回以下結構的結果:
{
runId: string,
analyzeStepResult: {
confidence: number,
ratio: number,
changes: number,
lengthDiff: number
},
score: number
}
評分詳情評分詳情 的直接連結
評分器會計算多項指標:
- 相似度比率:根據文本之間的序列配對計算(0 至 1)
- 變更:所需的不相符操作數目
- 長度差異:文本長度差異的標準化值
- 置信度:與長度差異成反比
評分流程評分流程 的直接連結
- 分析文本差異:
- 對輸入和輸出執行序列配對
- 計算所需的變更操作數目
- 量度長度差異
- 計算指標:
- 計算相似度比率
- 判定置信度分數
- 合併為加權分數
最終分數:(similarity_ratio * confidence) * scale
分數解讀分數解讀 的直接連結
文本差異分數介乎 0 至 1:
- 1.0:文本完全相同。
- 0.7 至 0.9:差異輕微,只需少量變更。
- 0.4 至 0.6:差異中等,需要明顯變更。
- 0.1 至 0.3:差異較大,需要大量變更。
- 0.0:文本完全不同。
範例範例 的直接連結
量度預期與實際 Agent 輸出之間的文本差異:
src/example-textual-difference.ts
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 參考。
如要將此評分器加入 Agent,請參閱 評分器概覽指南。