语气一致性评分器
🌐 Tone Consistency Scorer
createToneScorer() 函数用于评估文本的情感语气和情感一致性。它可以以两种模式运行:比较输入/输出对之间的语气,或分析单个文本中的语气稳定性。
🌐 The createToneScorer() function evaluates the text's emotional tone and sentiment consistency. It can operate in two modes: comparing tone between input/output pairs or analyzing tone stability within a single text.
参数Direct link to 参数
🌐 Parameters
createToneScorer() 函数不接受任何选项。
🌐 The createToneScorer() function does not take any options.
此函数返回 MastraScorer 类的一个实例。有关 .run() 方法及其输入/输出的详细信息,请参见 MastraScorer 参考。
🌐 This function returns an instance of the MastraScorer class. See the MastraScorer reference for details on the .run() method and its input/output.
.run() 返回Direct link to .run() 返回
🌐 .run() Returns
runId:
analyzeStepResult:
score:
.run() 返回的结果形状如下:
{
runId: string,
analyzeStepResult: {
responseSentiment?: number,
referenceSentiment?: number,
difference?: number,
avgSentiment?: number,
sentimentVariance?: number,
},
score: number
}
评分详情Direct link to 评分详情
🌐 Scoring Details
评分者通过语调模式分析和模式特定评分来评估情绪一致性。
🌐 The scorer evaluates sentiment consistency through tone pattern analysis and mode-specific scoring.
评分流程Direct link to 评分流程
🌐 Scoring Process
- 分析音调模式:
- 提取情感特性
- 计算情感分数
- 测量音调变化
- 计算特定模式分数:语调一致性(输入和输出):
- 比较文本之间的情感
- 计算情绪差异
- 得分 = 1 -(情绪差异 / 最大差异) 语调稳定性(单次输入)
- 分析句子间的情感
- 计算情绪差异
- 得分 = 1 - (情感方差 / 最大方差)
最终得分:mode_specific_score * scale
🌐 Final score: mode_specific_score * scale
分数解释Direct link to 分数解释
🌐 Score interpretation
(0 为缩放,默认 0-1)
- 1.0:完美的音色一致性/稳定性
- 0.7-0.9:高度一致,只有轻微差异
- 0.4-0.6:中等一致性,变化显著
- 0.1-0.3:一致性差,主音调变化明显
- 0.0:没有一致性——完全不同的语调
analyzeStepResultDirect link to analyzeStepResult
带音调指标的对象:
🌐 Object with tone metrics:
- responseSentiment:回复的情感评分(比较模式)。
- referenceSentiment:输入/参考(比较模式)的情感分数。
- 差异:情感评分之间的绝对差值(比较模式)。
- avgSentiment:句子间的平均情感(稳定模式)。
- 情感方差:句子间情感的方差(稳定模式)。
示例Direct link to 示例
🌐 Example
评估相关代理响应之间的语气一致性:
🌐 Evaluate tone consistency between related agent responses:
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 参考。
🌐 For more details on runEvals, see the runEvals reference.
要将此评分器添加到代理中,请参阅 评分器概览 指南。
🌐 To add this scorer to an agent, see the Scorers overview guide.
相关Direct link to 相关
🌐 Related