Aller au contenu principal

Scorer de cohérence du ton

La fonction createToneScorer() évalue la cohérence du ton émotionnel et du sentiment d’un texte. Elle peut fonctionner selon deux modes : comparer le ton de paires entrée/sortie ou analyser la stabilité du ton au sein d’un seul texte.

Paramètres
Lien direct vers Paramètres

La fonction createToneScorer() n’accepte aucune option.

Cette fonction renvoie une instance de la classe MastraScorer. Consultez la référence de MastraScorer pour en savoir plus sur la méthode .run() et ses entrées/sorties.

Valeur renvoyée par .run()
Lien direct vers run-returns

runId:

string
ID de l’exécution, facultatif.

analyzeStepResult:

object
Objet contenant les métriques de ton : { responseSentiment: number, referenceSentiment: number, difference: number } pour le mode de comparaison, OU { avgSentiment: number, sentimentVariance: number } pour le mode de stabilité

score:

number
Score de cohérence ou de stabilité du ton, de 0 à 1.

.run() renvoie un résultat possédant la structure suivante :

{
runId: string,
analyzeStepResult: {
responseSentiment?: number,
referenceSentiment?: number,
difference?: number,
avgSentiment?: number,
sentimentVariance?: number,
},
score: number
}

Détails du calcul du score
Lien direct vers Détails du calcul du score

Le Scorer évalue la cohérence du sentiment en analysant les modèles de ton et en calculant un score propre au mode utilisé.

Processus de calcul du score
Lien direct vers Processus de calcul du score

  1. Analyse les modèles de ton :
    • Extrait les caractéristiques du sentiment
    • Calcule les scores de sentiment
    • Mesure les variations de ton
  2. Calcule le score propre au mode : Cohérence du ton (entrée et sortie) :
    • Compare le sentiment entre les textes
    • Calcule la différence de sentiment
    • Score = 1 - (sentiment_difference / max_difference) Stabilité du ton (une seule entrée) :
    • Analyse le sentiment dans les différentes phrases
    • Calcule la variance du sentiment
    • Score = 1 - (sentiment_variance / max_variance)

Score final : mode_specific_score * scale

Interprétation du score
Lien direct vers Interprétation du score

(de 0 à scale, valeur par défaut de 0 à 1)

  • 1.0 : cohérence ou stabilité parfaite du ton
  • 0.7-0.9 : forte cohérence avec de légères variations
  • 0.4-0.6 : cohérence modérée avec des changements perceptibles
  • 0.1-0.3 : faible cohérence avec d’importants changements de ton
  • 0.0 : aucune cohérence, les tons sont complètement différents

analyzeStepResult
Lien direct vers analyzestepresult

Objet contenant les métriques de ton :

  • responseSentiment : score de sentiment de la réponse, en mode de comparaison.
  • referenceSentiment : score de sentiment de l’entrée ou de la référence, en mode de comparaison.
  • difference : différence absolue entre les scores de sentiment, en mode de comparaison.
  • avgSentiment : sentiment moyen dans les différentes phrases, en mode de stabilité.
  • sentimentVariance : variance du sentiment dans les différentes phrases, en mode de stabilité.

Exemple
Lien direct vers Exemple

Évaluez la cohérence du ton entre des réponses associées d’un 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)

Pour en savoir plus sur runEvals, consultez la référence de runEvals.

Pour ajouter ce Scorer à un Agent, consultez le guide de présentation des Scorers.