語氣一致性評分器
createToneScorer() 函式會評估文本的情緒語氣和情感一致性。它可使用兩種模式:比較輸入/輸出配對之間的語氣,或分析單一文本內的語氣穩定性。
參數參數 的直接連結
createToneScorer() 函式不接受任何選項。
此函式會傳回 MastraScorer 類別的實例。有關 .run() 方法及其輸入/輸出的詳情,請參閱 MastraScorer 參考。
.run() 傳回值run-returns 的直接連結
runId:
string
執行的 ID(選填)。
analyzeStepResult:
object
包含語氣指標的物件:{ responseSentiment: number, referenceSentiment: number, difference: number }(比較模式)或 { avgSentiment: number, sentimentVariance: number }(穩定性模式)
score:
number
語氣一致性/穩定性分數(0 至 1)。
.run() 會傳回以下結構的結果:
{
runId: string,
analyzeStepResult: {
responseSentiment?: number,
referenceSentiment?: number,
difference?: number,
avgSentiment?: number,
sentimentVariance?: number,
},
score: number
}
評分詳情評分詳情 的直接連結
評分器透過語氣模式分析及各模式專用的評分方式,評估情感一致性。
評分流程評分流程 的直接連結
- 分析語氣模式:
- 擷取情感特徵
- 計算情感分數
- 量度語氣變化
- 計算模式專用分數:
語氣一致性(輸入和輸出):
- 比較文本之間的情感
- 計算情感差異
- 分數 = 1 - (sentiment_difference / max_difference) 語氣穩定性(單一輸入):
- 分析各句子的情感
- 計算情感變異數
- 分數 = 1 - (sentiment_variance / max_variance)
最終分數:mode_specific_score * scale
分數解讀分數解讀 的直接連結
(0 至 scale,預設為 0 至 1)
- 1.0:語氣一致性/穩定性完美
- 0.7-0.9:一致性高,只有輕微變化
- 0.4-0.6:一致性中等,有明顯轉變
- 0.1-0.3:一致性低,語氣有重大變化
- 0.0:毫無一致性——語氣完全不同
analyzeStepResultanalyzestepresult 的直接連結
包含語氣指標的物件:
- responseSentiment:回應的情感分數(比較模式)。
- referenceSentiment:輸入/參考文本的情感分數(比較模式)。
- difference:情感分數之間的絕對差異(比較模式)。
- avgSentiment:各句子的平均情感分數(穩定性模式)。
- sentimentVariance:各句子情感分數的變異數(穩定性模式)。
範例範例 的直接連結
評估相關 Agent 回應之間的語氣一致性:
src/example-tone-consistency.ts
import { runEvals } from '@mastra/core/evals'
import { createToneScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
const scorer = createToneScorer()
const result = await runEvals({
data: [
{
input: 'How was your experience with our service?',
groundTruth: 'The service was excellent and exceeded expectations!',
},
{
input: 'Tell me about the customer support',
groundTruth: 'The support team was friendly and very helpful.',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
})
},
})
console.log(result.scores)
有關 runEvals 的詳情,請參閱 runEvals 參考。
如要將此評分器加入 Agent,請參閱 評分器概覽指南。