Scorer de similarité de contenu
La fonction createContentSimilarityScorer() mesure la similarité textuelle entre deux chaînes et fournit un score qui indique leur degré de correspondance. Elle propose des options configurables pour la sensibilité à la casse et le traitement des espaces blancs.
ParamètresLien direct vers Paramètres
La fonction createContentSimilarityScorer() accepte un objet d’options unique doté des propriétés suivantes :
ignoreCase:
ignoreWhitespace:
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:
preprocessStepResult:
analyzeStepResult:
score:
Détails de l’évaluationLien direct vers Détails de l’évaluation
Le Scorer évalue la similarité textuelle par une mise en correspondance au niveau des caractères et une normalisation configurable du texte.
Processus d’évaluationLien direct vers Processus d’évaluation
- Normalise le texte :
- normalisation de la casse (si ignoreCase: true)
- normalisation des espaces blancs (si ignoreWhitespace: true)
- Compare les chaînes traitées au moyen de l’algorithme string-similarity :
- analyse les séquences de caractères
- aligne les limites des mots
- prend en compte les positions relatives
- tient compte des différences de longueur
Score final : similarity_value * scale
ExempleLien direct vers Exemple
Évaluez la similarité textuelle entre les sorties attendues et réelles de l’Agent :
import { runEvals } from '@mastra/core/evals'
import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
const scorer = createContentSimilarityScorer()
const result = await runEvals({
data: [
{
input: 'Summarize the benefits of TypeScript',
groundTruth:
'TypeScript provides static typing, better tooling support, and improved code maintainability.',
},
{
input: 'What is machine learning?',
groundTruth:
'Machine learning is a subset of AI that enables systems to learn from data without explicit programming.',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
groundTruth: scorerResults[scorer.id].groundTruth,
})
},
})
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.
Interprétation du scoreLien direct vers Interprétation du score
Pour un score de similarité compris entre 0 et 1 :
- 1.0 : correspondance parfaite, le contenu est presque identique.
- 0.7 à 0.9 : similarité élevée, avec de légères différences dans le choix des mots ou la structure.
- 0.4 à 0.6 : similarité modérée, avec un chevauchement général et des variations perceptibles.
- 0.1 à 0.3 : faible similarité, avec peu d’éléments communs ou de sens partagé.
- 0.0 : aucune similarité, le contenu est totalement différent.