Référence API

Référence des types principaux de l'Evaluation SDK et du point d'entrée principal evaluation.run(). Pour la référence au niveau méthode des opérations avancées, consultez Réessayer les enregistrements en échec, Réévaluer les runs persistés et Optimiser les prompts et les paramètres.

evaluation.run()

evaluation.run()

Point d'entrée principal pour exécuter des évaluations.

run = await client.evaluation.run(
    dataset=...,
    task=...,
    evaluators=...,
    # optional parameters below
)
ParamètreTypeValeur par défautDescription
datasetSequence[Mapping[str, Any]] | DatasetobligatoireEnregistrements d'entrée en ligne, ou un jeu de données Studio (10 000 enregistrements maximum par exécution).
taskTaskFunctionobligatoireFonction asynchrone ou synchrone (ctx: TaskContext) -> output.
evaluatorslist[Evaluator]obligatoireÉvaluateurs par enregistrement.
run_evaluatorslist[RunEvaluator][]Évaluateurs au niveau du run (exécutés après tous les enregistrements).
projectProjectNoneProjet dans lequel enregistrer (créé s'il n'existe pas et sélectionné par son nom).
evaluationEvaluationNoneÉvaluation dans laquelle enregistrer (créée si elle n'existe pas et sélectionnée par son nom).
namestrNoneNom du run.
descriptionstrNoneDescription du run.
metadatadict{}Métadonnées clé-valeur personnalisées.
tagslist[str][]Tags pour filtrer dans Studio.
num_generationsint1Nombre d'exécutions de la tâche par enregistrement d'entrée.
localboolFalseSi True, ignore le téléchargement vers Studio.
systemSystemNoneConfiguration système transmise à la tâche et aux scorers via les objets de contexte.
upload_batch_sizeint10Taille de batch pour les téléchargements en streaming (500 maximum).
max_concurrencyint10Nombre maximal d'enregistrements traités simultanément.

Il renvoie un EvaluationRun :

ChampTypeDescription
recordslist[EvaluationRunRecord]Tous les enregistrements traités.
statisticsdict[str, Statistics]Statistiques agrégées par évaluateur.
run_scoresdict[str, Any]Résultats des évaluateurs au niveau du run.
statusstr | NoneStatut du cycle de vie de l'exécution : "pending", "running", "completed", "failed" ou "cancelled".

run() marque l'exécution comme "running" pendant son déroulement, puis comme "completed". Si l'exécution lève une exception, elle est marquée "failed" ; si elle est interrompue, "cancelled". Pendant le déroulement de l'exécution, le SDK envoie un heartbeat à Studio, de sorte qu'une exécution dont le processus s'arrête est marquée "cancelled" au lieu de rester en cours.

MéthodeDescription
run.show(mode, level)Affiche les résultats. mode : "text" (par défaut), "json". level : "run" (par défaut), "records", "generations", "scores".
Projet

Projet

Un projet regroupe des évaluations liées. Vous pouvez le voir comme un dossier, par exemple « Chatbot QA » ou « RAG Pipeline ».

Project(name="My Project")       # create or get by name
Project(slug="my-project")       # get by slug

Au moins un des paramètres name ou slug doit être fourni. Un projet sélectionné par son nom est créé s'il n'existe pas ; un projet sélectionné par son slug doit déjà exister.

Jeu de données

Jeu de données

Sélectionne un jeu de données Studio par son slug ou son UUID. Le SDK récupère ses enregistrements avant le démarrage de l'exécution. Voir Utiliser un jeu de données Studio.

from mistralai.evaluations import Dataset

Dataset(slug="customer-support-golden-set")
Dataset(id="018f879d-20cd-7e9f-a1bc-2f4f08b6f170")

Exactement un des paramètres id et slug doit être fourni, et id doit être un UUID valide. Le jeu de données doit déjà exister : le sélectionner par son slug ne le crée jamais.

Évaluation

Évaluation

Une évaluation est un test nommé que vous exécutez de façon répétée dans le temps, par exemple « Précision sur les prompts French ». Chaque appel à evaluation.run() crée un nouveau run sous cette évaluation, ce qui vous permet de suivre l'évolution des scores d'un run à l'autre.

Evaluation(name="My Eval")       # create or get by name
Evaluation(slug="my-eval")       # get by slug

Au moins un des paramètres name ou slug doit être fourni. Une évaluation sélectionnée par son nom est créée sous le projet indiqué si elle n'existe pas ; une évaluation sélectionnée par son slug doit déjà exister.

Évaluateur

Évaluateur

Un évaluateur définit la manière de noter chaque enregistrement individuel. Il associe un nom à une fonction de scoring qui reçoit un ScorerContext et renvoie un score.

Evaluator(
    name="accuracy",
    scorer=my_scorer,
    description="Optional description",
    tags=["tag1"],
    num_scores=1,
    goal=Goal.gte(0.8),
)
ParamètreTypeValeur par défautDescription
namestrobligatoireNom unique de l'évaluateur.
scorerScoreFunctionobligatoire(ctx: ScorerContext) -> value ou Score.
descriptionstrNoneDescription affichée dans Studio au survol.
tagslist[str][]Tags.
num_scoresint1Nombre de passes de scoring par génération (résultats moyennés — utile avec des juges LLM bruités).
goalGoalSpecNoneObjectif de réussite/échec par génération (par exemple, Goal.gte(0.8)).
direction"maximize" | "minimize"NoneIndique le sens considéré comme meilleur. Déduit de l'objectif lorsqu'il n'est pas défini.
min_value / max_valuefloatNoneFenêtre de normalisation min-max (définissez les deux valeurs ou aucune).
weightfloat1.0Pression d'optimisation ; 0 transforme la métrique en contrainte pure.
statisticslist[StatisticSpec]NoneStatistiques au niveau du run à exposer. Consultez Configurer les statistiques.
aggregate_goalGoalSpecNoneObsolète — préférez un objectif au niveau de la statistique. Objectif au niveau du run évalué par rapport au score moyen.

Un scorer peut renvoyer :

  • int ou float — score numérique (statistiques : avg, min, max, std, count).
  • str ou bool — score catégoriel (statistiques : fréquences, mode).
  • Score(value=..., rationale=..., metadata=...) — score riche avec une explication et des données supplémentaires.
RunEvaluator

RunEvaluator

Un évaluateur de run opère sur le jeu complet de résultats après le traitement de tous les enregistrements. Utilisez-le pour les métriques agrégées qui ne peuvent pas être exprimées par enregistrement, comme le score F1, les portes de réussite/échec globales ou l'analyse entre enregistrements.

RunEvaluator(
    name="accuracy_gate",
    scorer=my_run_scorer,
)
ParamètreTypeValeur par défautDescription
namestrobligatoireNom unique.
scorerRunEvaluatorFunctionobligatoire(ctx: RunEvaluatorContext) -> value ou Score.
descriptionstrNoneDescription.
tagslist[str][]Tags.
goalGoalSpecNoneObjectif de réussite/échec pour le score au niveau du run (par exemple, Goal.gte(0.85)).

Le scorer reçoit un RunEvaluatorContext qui donne accès à tous les enregistrements, à leurs scores, aux statistiques agrégées et à la configuration système. Consultez le guide des évaluateurs de run pour des exemples.

Objectif

Objectif

Fabrique de spécifications d'objectif. Consultez Définir des objectifs pour le guide complet.

from mistralai.evaluations import Goal

Goal.gte(0.8)             # gate: score >= 0.8
Goal.lte(0.1)             # gate: score <= 0.1
Goal.between(0.2, 0.8)    # gate: 0.2 <= score <= 0.8

Un Goal est uniquement une porte. Pour déclarer le sens considéré comme meilleur, définissez direction="maximize" / "minimize" sur l'évaluateur. Cette valeur est aussi déduite d'un objectif gte/lte.

Système

Système

Un système capture la configuration qui pilote votre tâche : nom du modèle, température, prompt système, définitions d'outils, etc. Enregistrer ces éléments comme paramètres, plutôt que les coder en dur, les rend visibles dans Studio et vous permet de comparer les runs entre différentes configurations. Consultez Configurer les paramètres système pour plus de détails.

from mistralai.evaluations import System

system = System(name="small-t0", params={"model": "mistral-small-latest", "temperature": 0})

Lorsque system est fourni, il est disponible via ctx.system dans les tâches et les scorers :

async def task(ctx: TaskContext) -> str:
    response = await client.chat.complete_async(
        model=str(ctx.system.params["model"]),
        temperature=float(ctx.system.params["temperature"]),
        messages=[{"role": "user", "content": ctx.input_record["prompt"]}],
    )
    return str(response.choices[0].message.content)
ParamètreTypeValeur par défautDescription
namestrobligatoireNom du système (affiché dans Studio).
paramsdict[str, Any]{}Configuration clé-valeur libre transmise à la tâche.

Consultez Utiliser les objets de contexte pour la référence complète du contexte.