> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Scorer de fidélité La fonction `createFaithfulnessScorer()` évalue l'exactitude factuelle de la sortie d'un LLM par rapport au contexte fourni. Elle extrait les affirmations de la sortie et les vérifie à l'aide du contexte, ce qui en fait un outil essentiel pour mesurer la fiabilité des réponses d'un pipeline RAG. ## Paramètres La fonction `createFaithfulnessScorer()` accepte un seul objet d'options doté des propriétés suivantes : **model** (`LanguageModel`): Configuration du modèle utilisé pour évaluer la fidélité. **context** (`string[]`): Tableau de segments de contexte par rapport auxquels les affirmations de la sortie seront vérifiées. **scale** (`number`): Valeur maximale du score. Le score final sera normalisé selon cette échelle. (Default: `1`) Cette fonction renvoie une instance de la classe MastraScorer. La méthode `.run()` accepte les mêmes entrées que les autres scorers (consultez la [référence de MastraScorer](https://mastra.zisheng.pro/fr/reference/evals/mastra-scorer)), mais la valeur renvoyée comprend les champs propres aux LLM décrits ci-dessous. ## Valeur renvoyée par `.run()` **runId** (`string`): L'identifiant de l'exécution (facultatif). **preprocessStepResult** (`string[]`): Tableau des affirmations extraites de la sortie. **preprocessPrompt** (`string`): Le prompt envoyé au LLM pour l'étape preprocess (facultatif). **analyzeStepResult** (`object`): Objet contenant les verdicts : { verdicts: Array<{ verdict: 'yes' | 'no' | 'unsure', reason: string }> } **analyzePrompt** (`string`): Le prompt envoyé au LLM pour l'étape analyze (facultatif). **score** (`number`): Score compris entre 0 et l'échelle configurée, qui représente la proportion d'affirmations étayées par le contexte. **reason** (`string`): Explication détaillée du score, notamment les affirmations étayées, contredites ou marquées comme incertaines. **generateReasonPrompt** (`string`): Le prompt envoyé au LLM pour l'étape generateReason (facultatif). ## Détails de l'évaluation Le scorer évalue la fidélité en vérifiant les affirmations par rapport au contexte fourni. ### Processus d'évaluation 1. Analyse les affirmations et le contexte : - Extrait toutes les affirmations (factuelles et spéculatives) - Vérifie chaque affirmation par rapport au contexte - Attribue l'un des trois verdicts : - « yes » : l'affirmation est étayée par le contexte - « no » : l'affirmation contredit le contexte - « unsure » : l'affirmation ne peut pas être vérifiée 2. Calcule le score de fidélité : - Compte les affirmations étayées - Divise ce nombre par le nombre total d'affirmations - Adapte le résultat à la plage configurée Score final : `(supported_claims / total_claims) * scale` ### Interprétation du score Pour un score de fidélité compris entre 0 et 1 : - **1.0** : toutes les affirmations sont exactes et directement étayées par le contexte. - **0.7 à 0.9** : la plupart des affirmations sont correctes, avec quelques ajouts ou omissions mineurs. - **0.4 à 0.6** : certaines affirmations sont étayées, mais d'autres ne peuvent pas être vérifiées. - **0.1 à 0.3** : la majeure partie du contenu est inexacte ou non étayée. - **0.0** : toutes les affirmations sont fausses ou contredisent le contexte. ## Exemple Évaluez la fidélité des réponses d'un Agent au contexte fourni : ```typescript import { runEvals } from '@mastra/core/evals' import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' // Context is typically populated from agent tool calls or RAG retrieval const scorer = createFaithfulnessScorer({ model: 'openai/gpt-5.6-sol', }) const result = await runEvals({ data: [ { input: 'Tell me about the Tesla Model 3.', }, { input: 'What are the key features of this electric vehicle?', }, ], 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 [Présentation des scorers](https://mastra.zisheng.pro/fr/docs/evals/overview). ## Voir aussi - [Scorer de pertinence de la réponse](https://mastra.zisheng.pro/fr/reference/evals/answer-relevancy) - [Scorer d'hallucination](https://mastra.zisheng.pro/fr/reference/evals/hallucination)