> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Scorer de similarité des réponses La fonction `createAnswerSimilarityScorer()` crée un scorer qui évalue le degré de similarité entre la sortie d’un Agent et une réponse de vérité terrain. Ce scorer est spécialement conçu pour les scénarios de test CI/CD dans lesquels vous disposez de réponses attendues et souhaitez garantir leur cohérence dans le temps. ## Paramètres **model** (`LanguageModel`): Modèle de langage utilisé pour évaluer la similarité sémantique entre les sorties et la vérité terrain. **options** (`AnswerSimilarityOptions`): Options de configuration du scorer. **options.requireGroundTruth** (`boolean`): Indique si la vérité terrain doit être obligatoire pour l’évaluation. Si la valeur est false, l’absence de vérité terrain produit un score de 0. **options.semanticThreshold** (`number`): Poids des correspondances sémantiques par rapport aux correspondances exactes (0 à 1). **options.exactMatchBonus** (`number`): Bonus de score supplémentaire pour les correspondances exactes (0 à 1). **options.missingPenalty** (`number`): Pénalité appliquée pour chaque concept clé absent par rapport à la vérité terrain. **options.contradictionPenalty** (`number`): Pénalité appliquée aux informations contradictoires. Une valeur élevée garantit que les réponses erronées obtiennent un score proche de 0. **options.extraInfoPenalty** (`number`): Pénalité légère pour les informations supplémentaires absentes de la vérité terrain (plafonnée à 0,2). **options.scale** (`number`): Facteur d’échelle du score. Cette fonction renvoie une instance de la classe MastraScorer. La méthode `.run()` accepte la même entrée que les autres scorers (consultez la [référence de MastraScorer](https://mastra.zisheng.pro/fr/reference/evals/mastra-scorer)), mais **exige que la vérité terrain** soit fournie dans l’objet d’exécution. ## Valeur renvoyée par `.run()` **runId** (`string`): ID de l’exécution (facultatif). **score** (`number`): Score de similarité compris entre 0 et 1 (ou entre 0 et scale si une échelle personnalisée est utilisée). Un score élevé indique une plus grande similarité avec la vérité terrain. **reason** (`string`): Explication lisible du score, accompagnée d’un retour exploitable. **preprocessStepResult** (`object`): Unités sémantiques extraites de la sortie et de la vérité terrain. **analyzeStepResult** (`object`): Analyse détaillée des correspondances, contradictions et informations supplémentaires. **preprocessPrompt** (`string`): Prompt utilisé pour extraire les unités sémantiques. **analyzePrompt** (`string`): Prompt utilisé pour analyser la similarité. **generateReasonPrompt** (`string`): Prompt utilisé pour générer l’explication. ## Détails de la notation Le scorer suit un processus en plusieurs étapes : 1. **Extraction** : décompose la sortie et la vérité terrain en unités sémantiques 2. **Analyse** : compare les unités et identifie les correspondances, les contradictions et les lacunes 3. **Score** : calcule une similarité pondérée en appliquant des pénalités aux contradictions 4. **Justification** : génère une explication lisible Calcul du score : `max(0, base_score - contradiction_penalty - missing_penalty - extra_info_penalty) × scale` ## Exemple Évaluez la similarité entre les réponses d’un Agent et la vérité terrain dans différents scénarios : ```typescript import { runEvals } from '@mastra/core/evals' import { createAnswerSimilarityScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createAnswerSimilarityScorer({ model: 'openai/gpt-5.6-sol' }) const result = await runEvals({ data: [ { input: 'What is 2+2?', groundTruth: '4', }, { input: 'What is the capital of France?', groundTruth: 'The capital of France is Paris', }, { input: 'What are the primary colors?', groundTruth: 'The primary colors are red, blue, and yellow', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, reason: scorerResults[scorer.id].reason, }) }, }) 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).