> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # 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ètres La fonction `createContentSimilarityScorer()` accepte un objet d’options unique doté des propriétés suivantes : **ignoreCase** (`boolean`): Indique s’il faut ignorer les différences de casse lors de la comparaison des chaînes. (Default: `true`) **ignoreWhitespace** (`boolean`): Indique s’il faut normaliser les espaces blancs lors de la comparaison des chaînes. (Default: `true`) Cette fonction renvoie une instance de la classe MastraScorer. Consultez la [référence de MastraScorer](https://mastra.zisheng.pro/fr/reference/evals/mastra-scorer) pour en savoir plus sur la méthode `.run()` et ses entrées/sorties. ## Valeur renvoyée par `.run()` **runId** (`string`): ID de l’exécution (facultatif). **preprocessStepResult** (`object`): Objet contenant l’entrée et la sortie traitées : { processedInput: string, processedOutput: string } **analyzeStepResult** (`object`): Objet contenant la similarité : { similarity: number } **score** (`number`): Score de similarité (de 0 à 1), où 1 indique une similarité parfaite. ## 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’évaluation 1. Normalise le texte : - normalisation de la casse (si ignoreCase: true) - normalisation des espaces blancs (si ignoreWhitespace: true) 2. 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` ## Exemple Évaluez la similarité textuelle entre les sorties attendues et réelles de l’Agent : ```typescript 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](https://mastra.zisheng.pro/fr/reference/evals/run-evals). Pour ajouter ce Scorer à un Agent, consultez le guide de [présentation des Scorers](https://mastra.zisheng.pro/fr/docs/evals/overview). ### 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. ## Voir aussi - [Scorer de complétude](https://mastra.zisheng.pro/fr/reference/evals/completeness) - [Scorer de différence textuelle](https://mastra.zisheng.pro/fr/reference/evals/textual-difference) - [Scorer de pertinence de la réponse](https://mastra.zisheng.pro/fr/reference/evals/answer-relevancy) - [Scorer de couverture des mots-clés](https://mastra.zisheng.pro/fr/reference/evals/keyword-coverage)