Skip to main content

语气一致性评分器

🌐 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:

string
The id of the run (optional).

analyzeStepResult:

object
Object with tone metrics: { responseSentiment: number, referenceSentiment: number, difference: number } (for comparison mode) OR { avgSentiment: number, sentimentVariance: number } (for stability mode)

score:

number
Tone consistency/stability score (0-1).

.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. 分析音调模式:
    • 提取情感特性
    • 计算情感分数
    • 测量音调变化
  2. 计算特定模式分数:语调一致性(输入和输出):
    • 比较文本之间的情感
    • 计算情绪差异
    • 得分 = 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:没有一致性——完全不同的语调

analyzeStepResult
Direct link to analyzeStepResult

带音调指标的对象:

🌐 Object with tone metrics:

  • responseSentiment:回复的情感评分(比较模式)。
  • referenceSentiment:输入/参考(比较模式)的情感分数。
  • 差异:情感评分之间的绝对差值(比较模式)。
  • avgSentiment:句子间的平均情感(稳定模式)。
  • 情感方差:句子间情感的方差(稳定模式)。

示例
Direct link to 示例

🌐 Example

评估相关代理响应之间的语气一致性:

🌐 Evaluate tone consistency between related agent responses:

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 参考

🌐 For more details on runEvals, see the runEvals reference.

要将此评分器添加到代理中,请参阅 评分器概览 指南。

🌐 To add this scorer to an agent, see the Scorers overview guide.

🌐 Related