"Lecture des résultats"

Chaque score est un événement de log OTLP gen_ai.evaluation.result, écrit dans la plateforme de télémétrie, à côté du span qu'il a évalué. Vous les récupérez via quatre endpoints, les mêmes que ceux qu'utilise AI Studio.

Les exemples supposent que MISTRAL_API_KEY et MISTRAL_BASE_URL (par exemple https://api.mistral.ai) sont définies, comme dans le guide de démarrage.

L'enregistrement de résultat

L'enregistrement de résultat

ChampContenu
trace_id, span_idLe span évalué.
timestampLe moment où l'évaluation a été émise, et non celui où le span a été créé.
evaluation_namejudge:<pipeline-config-slug>.
score_valueRenseigné pour les scorers numeric.
score_labelRenseigné pour les scorers categorical et boolean.
explanationLa raison du juge.
response_id, conversation_idCopiés depuis le span source lorsqu'ils sont présents.
metadataMap de chaînes des attributs restants de l'événement. Le worker définit mistral.obs.judge.slug et mistral.obs.scorer.slug sur chaque événement de juge.

Pour trouver l'evaluation_name d'une évaluation en direct, lisez pipeline_configs[].slug dans la réponse de GET /v1/observability/pipelines/{id}.

Fenêtres temporelles

Fenêtres temporelles

Tous les endpoints de résultats acceptent la fenêtre sous forme de paramètres de requête, et non dans le corps :

  • from et to sont des horodatages ISO 8601 avec un fuseau horaire.
  • Par défaut, to correspond à l'heure actuelle et from à une heure avant to.
  • La fenêtre est plafonnée à 750 heures (environ 31 jours). Les fenêtres plus longues renvoient une erreur 422 avec la limite indiquée dans le message.

POST /v1/observability/spans/evaluations/search renvoie tous les événements d'évaluation, du plus récent au plus ancien.

curl -s -X POST "$MISTRAL_BASE_URL/v1/observability/spans/evaluations/search?from=2026-10-20T00:00:00Z&to=2026-10-21T00:00:00Z&page_size=50" \
  -H "Authorization: Bearer $MISTRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "search_expression": "evaluation_name = '\''judge:helpfulness-1a2b3c4d-7b04d1aa'\'' AND score_value <= 2" }'

Les résultats se trouvent dans span_evaluations.results. Pour récupérer la page suivante, suivez le lien span_evaluations.next ou renvoyez span_evaluations.cursor en tant que cursor. GET /v1/observability/spans/evaluations/fields liste les champs acceptés par search_expression, et …/fields/{field_name}/options liste les valeurs connues d'un champ.

Plus récent par span

Plus récent par span

POST /v1/observability/spans/evaluations/search/latest accepte la même requête et renvoie au plus un résultat par span et par evaluation_name : le plus récent. Utilisez-le si un span a été évalué plus d'une fois, par exemple lorsque le même span est envoyé plus d'une fois.

Une ligne par span

Une ligne par span

POST /v1/observability/pipeline-results/search pivote les résultats afin que chaque ligne représente un span avec l'ensemble de ses scores :

curl -s -X POST "$MISTRAL_BASE_URL/v1/observability/pipeline-results/search?page_size=50" \
  -H "Authorization: Bearer $MISTRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "pipeline_config_slugs": ["helpfulness-1a2b3c4d-7b04d1aa", "tone-5e6f7a8b-0c1d2e3f"] }'

Transmettez les slugs de configuration de pipeline sans le préfixe judge:, 100 au maximum. Chaque ligne contient trace_id, span_id, span_name, duration_ns, evaluated_at et trois maps indexées par evaluation_name : judge_scores, judge_labels et judge_explanations. C'est la structure qui alimente le tableau de résultats d'une évaluation en direct dans AI Studio.

Agrégation

Agrégation

POST /v1/observability/spans/evaluations/aggregate calcule une métrique, éventuellement groupée et découpée en intervalles de temps.

curl -s -X POST "$MISTRAL_BASE_URL/v1/observability/spans/evaluations/aggregate?from=2026-10-20T00:00:00Z&to=2026-10-21T00:00:00Z" \
  -H "Authorization: Bearer $MISTRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metric": { "measure": "score_value", "aggregation": "avg" },
    "dimensions": ["evaluation_name"],
    "time_dimension": { "granularity": "hour" },
    "search_expression": "evaluation_name = '\''judge:helpfulness-1a2b3c4d-7b04d1aa'\''"
  }'
ChampValeurs
metric.aggregationcount, count_distinct, sum, avg, min, max, p50, p90, p95, p99
dimensionsChamps de regroupement, par exemple evaluation_name ou score_label.
time_dimension.granularityauto, second, minute, hour, day, week, month. Omettez time_dimension pour obtenir un seul total.
limit1–10 000, 1 000 par défaut.

La réponse contient des lignes dans data (time_bucket, dimensions, metric_name, metric_value) et un meta avec la fenêtre résolue et la taille des intervalles.

Pour les scorers categorical et boolean, utilisez "aggregation": "count" avec "dimensions": ["score_label"] pour obtenir la distribution des labels.

Dans AI Studio

Dans AI Studio

  • Évaluer → Évaluations → En direct → (une évaluation en direct) : graphiques de tendance, de distribution et de couverture, ainsi que le tableau de résultats par span.
  • Vue Trace : les évaluations de chaque span s'affichent sur le span.