Scorer de complétude
La fonction createCompletenessScorer() évalue dans quelle mesure la sortie d’un LLM couvre les éléments clés présents dans l’entrée. Elle analyse les noms, les verbes, les sujets et les termes afin de déterminer leur couverture et fournit un score de complétude détaillé.
ParamètresLien direct vers Paramètres
La fonction createCompletenessScorer() n’accepte aucune option.
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:
score:
La méthode .run() renvoie un résultat présentant la structure suivante :
{
runId: string,
extractStepResult: {
inputElements: string[],
outputElements: string[],
missingElements: string[],
elementCounts: { input: number, output: number }
},
score: number
}
Détails de l’extraction des élémentsLien direct vers Détails de l’extraction des éléments
Le Scorer extrait et analyse plusieurs types d’éléments :
- Noms : objets, concepts et entités clés
- Verbes : actions et états, convertis à l’infinitif
- Sujets : sujets et thèmes principaux
- Termes : mots significatifs individuels
Le processus d’extraction comprend :
- Normalisation du texte, avec suppression des signes diacritiques et conversion en minuscules
- Séparation des mots en camelCase
- Traitement des limites des mots
- Traitement particulier des mots courts, de 3 caractères ou moins
- Déduplication des éléments
extractStepResultLien direct vers extractstepresult
La méthode .run() permet d’obtenir l’objet extractStepResult doté des propriétés suivantes :
- inputElements : éléments clés trouvés dans l’entrée, par exemple des noms, verbes, sujets ou termes.
- outputElements : éléments clés trouvés dans la sortie.
- missingElements : éléments d’entrée introuvables dans la sortie.
- elementCounts : nombre d’éléments dans l’entrée et la sortie.
Détails de l’évaluationLien direct vers Détails de l’évaluation
Le Scorer évalue la complétude en analysant la couverture des éléments linguistiques.
Processus d’évaluationLien direct vers Processus d’évaluation
- Extrait les éléments clés :
- noms et entités nommées
- verbes d’action
- termes propres au sujet
- formes de mots normalisées
- Calcule la couverture des éléments d’entrée :
- correspondances exactes pour les termes courts (≤ 3 caractères)
- chevauchement important (> 60 %) pour les termes plus longs
Score final : (covered_elements / total_input_elements) * scale
Interprétation du scoreLien direct vers Interprétation du score
Pour un score de complétude compris entre 0 et 1 :
- 1.0 : traite en détail tous les aspects de la requête.
- 0.7 à 0.9 : couvre la plupart des aspects importants avec un bon niveau de détail et quelques lacunes mineures.
- 0.4 à 0.6 : traite certains points clés, mais omet des aspects importants ou manque de détails.
- 0.1 à 0.3 : ne traite que partiellement la requête et présente des lacunes importantes.
- 0.0 : ne traite pas la requête ou fournit des informations non pertinentes.
ExempleLien direct vers Exemple
Évaluez la complétude des réponses de l’Agent pour des requêtes de complexités différentes :
import { runEvals } from '@mastra/core/evals'
import { createCompletenessScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
const scorer = createCompletenessScorer()
const result = await runEvals({
data: [
{
input:
'Explain the process of photosynthesis, including the inputs, outputs, and stages involved.',
},
{
input: 'What are the benefits and drawbacks of remote work for both employees and employers?',
},
{
input:
'Compare renewable and non-renewable energy sources in terms of cost, environmental impact, and sustainability.',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
})
},
})
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.