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ètresLien direct vers Paramètres
La fonction createFaithfulnessScorer() accepte un seul objet d'options doté des propriétés suivantes :
model:
context:
scale:
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), mais la valeur renvoyée comprend les champs propres aux LLM décrits ci-dessous.
Valeur renvoyée par .run()Lien direct vers run-returns
runId:
preprocessStepResult:
preprocessPrompt:
preprocess (facultatif).analyzeStepResult:
analyzePrompt:
analyze (facultatif).score:
reason:
generateReasonPrompt:
generateReason (facultatif).Détails de l'évaluationLien direct vers Détails de l'évaluation
Le scorer évalue la fidélité en vérifiant les affirmations par rapport au contexte fourni.
Processus d'évaluationLien direct vers Processus d'évaluation
- 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
- 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 scoreLien direct vers 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.
ExempleLien direct vers Exemple
Évaluez la fidélité des réponses d'un Agent au contexte fourni :
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.
Pour ajouter ce scorer à un Agent, consultez le guide Présentation des scorers.