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()
Point d'entrée principal pour exécuter des évaluations.
run = await client.evaluation.run(
dataset=...,
task=...,
evaluators=...,
# optional parameters below
)| Paramètre | Type | Valeur par défaut | Description |
|---|---|---|---|
dataset | Sequence[Mapping[str, Any]] | Dataset | obligatoire | Enregistrements d'entrée en ligne, ou un jeu de données Studio (10 000 enregistrements maximum par exécution). |
task | TaskFunction | obligatoire | Fonction asynchrone ou synchrone (ctx: TaskContext) -> output. |
evaluators | list[Evaluator] | obligatoire | Évaluateurs par enregistrement. |
run_evaluators | list[RunEvaluator] | [] | Évaluateurs au niveau du run (exécutés après tous les enregistrements). |
project | Project | None | Projet dans lequel enregistrer (créé s'il n'existe pas et sélectionné par son nom). |
evaluation | Evaluation | None | Évaluation dans laquelle enregistrer (créée si elle n'existe pas et sélectionnée par son nom). |
name | str | None | Nom du run. |
description | str | None | Description du run. |
metadata | dict | {} | Métadonnées clé-valeur personnalisées. |
tags | list[str] | [] | Tags pour filtrer dans Studio. |
num_generations | int | 1 | Nombre d'exécutions de la tâche par enregistrement d'entrée. |
local | bool | False | Si True, ignore le téléchargement vers Studio. |
system | System | None | Configuration système transmise à la tâche et aux scorers via les objets de contexte. |
upload_batch_size | int | 10 | Taille de batch pour les téléchargements en streaming (500 maximum). |
max_concurrency | int | 10 | Nombre maximal d'enregistrements traités simultanément. |
Il renvoie un EvaluationRun :
| Champ | Type | Description |
|---|---|---|
records | list[EvaluationRunRecord] | Tous les enregistrements traités. |
statistics | dict[str, Statistics] | Statistiques agrégées par évaluateur. |
run_scores | dict[str, Any] | Résultats des évaluateurs au niveau du run. |
status | str | None | Statut 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éthode | Description |
|---|---|
run.show(mode, level) | Affiche les résultats. mode : "text" (par défaut), "json". level : "run" (par défaut), "records", "generations", "scores". |
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 slugAu 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
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
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 slugAu 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
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ètre | Type | Valeur par défaut | Description |
|---|---|---|---|
name | str | obligatoire | Nom unique de l'évaluateur. |
scorer | ScoreFunction | obligatoire | (ctx: ScorerContext) -> value ou Score. |
description | str | None | Description affichée dans Studio au survol. |
tags | list[str] | [] | Tags. |
num_scores | int | 1 | Nombre de passes de scoring par génération (résultats moyennés — utile avec des juges LLM bruités). |
goal | GoalSpec | None | Objectif de réussite/échec par génération (par exemple, Goal.gte(0.8)). |
direction | "maximize" | "minimize" | None | Indique le sens considéré comme meilleur. Déduit de l'objectif lorsqu'il n'est pas défini. |
min_value / max_value | float | None | Fenêtre de normalisation min-max (définissez les deux valeurs ou aucune). |
weight | float | 1.0 | Pression d'optimisation ; 0 transforme la métrique en contrainte pure. |
statistics | list[StatisticSpec] | None | Statistiques au niveau du run à exposer. Consultez Configurer les statistiques. |
aggregate_goal | GoalSpec | None | Obsolè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 :
intoufloat— score numérique (statistiques : avg, min, max, std, count).stroubool— score catégoriel (statistiques : fréquences, mode).Score(value=..., rationale=..., metadata=...)— score riche avec une explication et des données supplémentaires.
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ètre | Type | Valeur par défaut | Description |
|---|---|---|---|
name | str | obligatoire | Nom unique. |
scorer | RunEvaluatorFunction | obligatoire | (ctx: RunEvaluatorContext) -> value ou Score. |
description | str | None | Description. |
tags | list[str] | [] | Tags. |
goal | GoalSpec | None | Objectif 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
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.8Un 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
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ètre | Type | Valeur par défaut | Description |
|---|---|---|---|
name | str | obligatoire | Nom du système (affiché dans Studio). |
params | dict[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.