语气一致性 Scorer
createToneScorer() 函数用于评估文本的情绪语气和情感一致性。它支持两种模式:比较输入/输出对之间的语气,或分析单段文本内的语气稳定性。
参数参数的直接链接
createToneScorer() 函数不接受任何选项。
此函数返回 MastraScorer 类的实例。有关 .run() 方法及其输入/输出的详情,请参阅 MastraScorer 参考。
.run() returnsrun-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
}
评分详情评分详情的直接链接
该 Scorer 通过语气模式分析和特定于模式的评分来评估情感一致性。
评分流程评分流程的直接链接
- 分析语气模式:
- 提取情感特征
- 计算情感分数
- 衡量语气变化
- 计算特定模式的分数:
语气一致性(输入和输出):
- 比较文本之间的情感
- 计算情感差异
- 分数 = 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 参考。
要将此 Scorer 添加到 Agent,请参阅 Scorer 概述指南。