Utiliser les objets de Contexte

Les Fonctions et les évaluateurs reçoivent leurs entrées par le biais d’objets de Contexte : des modèles Pydantic typés qui regroupent toutes les données disponibles en un seul paramètre. Cette page est une référence aux trois types de Contexte.

TaskContext

Une Fonction de tâche reçoit un TaskContext avec l’enregistrement d’entrée, la configuration système et les métadonnées d’exécution :

from mistralai.observability import TaskContext

async def task(ctx: TaskContext) -> str:
    response = await client.chat.complete_async(
        model=str(ctx.system.params["model"]),
        messages=[{"role": "user", "content": ctx.input_record["prompt"]}],
    )
    return str(response.choices[0].message.content)
ChampTypeDescription
input_recorddict[str, Any]L’enregistrement actuel du jeu de données
system`SystemNone`
metadata`dict[str, Any]None`

ScorerContext

Une Fonction d’évaluateur reçoit un ScorerContext avec l’enregistrement d’entrée et la sortie de la tâche :

from mistralai.observability import ScorerContext

def accuracy_scorer(ctx: ScorerContext) -> int:
    return 1 if ctx.input_record["expected"].lower() in str(ctx.output).lower() else 0
ChampTypeDescription
input_recorddict[str, Any]L’enregistrement actuel du jeu de données
outputAnyLa sortie de la tâche pour cette génération
system`SystemNone`
metadata`dict[str, Any]None`

RunEvaluatorContext

Les évaluateurs de run reçoivent tous les enregistrements et les statistiques globalisées une fois le run terminé :

from mistralai.observability import RunEvaluatorContext

def accuracy_gate(ctx: RunEvaluatorContext):
    return ctx.statistics["accuracy"].avg >= 0.8
ChampTypeDescription
recordslist[RunEvaluatorRecord]Tous les enregistrements traités avec leurs scores
statisticsdict[str, EvaluatorStatistics]Statistiques globales par évaluateur
metadatadict[str, JsonValue]Métadonnées du run
system`SystemNone`

Utilisez get_score(record, "evaluator_name") pour accéder au score d’un évaluateur spécifique pour un enregistrement donné.