語氣一致性評分器
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:毫無一致性——語氣完全不同
analyzeStepResult「analyzestepresult」的直接連結
包含語氣指標的物件:
- 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,請參閱評分器概觀指南。