"Évaluations en continu"

Une évaluation en continu définit les spans à noter et les évaluateurs qui leur attribuent une note. L'API la désigne comme un pipeline (/v1/observability/pipelines). Dans AI Studio, elle se trouve sous Évaluer → Évaluations → En continu.

Structure

Structure

{
  "name": "Support answers",
  "description": "Helpfulness of the support bot on v2 traffic.",
  "selectors": [
    {
      "source_kind": "span",
      "filter": "gen_ai.operation.name = \"chat\" AND service.name = \"support-bot\""
    }
  ],
  "definitions": [
    {
      "slug": "helpfulness-1a2b3c4d",
      "mapping": { "product": "app.product_name" },
      "sampling": { "type": "probabilistic", "percentage": 20 }
    }
  ],
  "enabled": true
}
ChampRègles
name1 à 200 caractères, unique dans l'espace de travail. Transformé en slug de l'évaluation live.
descriptionFacultatif, jusqu'à 2 000 caractères.
selectorsAu moins un sélecteur. Seul source_kind: "span" est accepté.
definitionsAu moins une entrée. Chaque entrée associe un évaluateur, identifié par son slug.
enabledVaut true par défaut à la création.
Sélection du trafic

Sélection du trafic

Un span est sélectionné s'il correspond à au moins un sélecteur. Un sélecteur sans filter correspond à tous les spans.

filter utilise le même langage d'expressions que la barre de recherche de l'explorateur de traces et fait l'objet d'une validation à l'écriture. Une erreur de syntaxe renvoie le code 422.

SyntaxeExemple
Comparaisongen_ai.request.model = "mistral-large-latest", gen_ai.usage.output_tokens > 500
Logique booléenneA AND B, A OR B, NOT A, parenthèses. Un espace entre les termes équivaut à AND.
Ensemblesservice.name IN ("api", "worker"), NOT IN (...)
Présenceapp.customer_id EXISTS, NOT EXISTS
TexteLIKE, ILIKE, CONTAINS, REGEXP
IntervalleBETWEEN 1 AND 5

Les clés sont les noms bruts des attributs OpenTelemetry. Le worker fusionne les attributs de ressource, de portée et de span dans une seule table de correspondance. En cas de conflit, les attributs du span prévalent. Le worker évalue ensuite le filtre sur cette table. Cela a deux conséquences :

  • Les champs de span qui ne sont pas des attributs, comme le nom, la durée et le statut du span, ne peuvent pas être utilisés. AI Studio les refuse lorsque vous démarrez l'évaluation en continu.
  • AI Studio convertit les noms de champs de l'explorateur en noms d'attributs avant l'enregistrement. Un filtre récupéré via l'API peut donc différer de celui que vous avez saisi.

Les appels de fonction comme has(...) et les termes en texte libre passent la validation mais ne renvoient jamais de correspondance.

Pour vérifier un filtre avant de l'utiliser, configurez-le à l'étape Trafic cible dans AI Studio. Cette étape affiche un aperçu du nombre de spans correspondants.

Association des variables

Association des variables

mapping renseigne chaque variable de l'évaluateur à partir du span à noter. Les clés doivent être des variables de l'évaluateur, sinon la requête renvoie le code 422. Les valeurs peuvent être :

SourceValeur obtenue
transcriptMessages d'entrée et de sortie mis en forme.
input_messagesUniquement gen_ai.input.messages, mis en forme.
output_messagesUniquement gen_ai.output.messages, mis en forme.
Toute autre chaîneLa valeur de l'attribut du span portant ce nom.

Si la source est absente d'un span, la variable reste non renseignée et l'évaluateur s'exécute quand même. Les variables sans association se comportent de la même manière.

Échantillonnage

Échantillonnage

L'échantillonnage se définit pour chaque évaluateur associé. Une même évaluation en continu peut donc exécuter un juge peu coûteux sur tout le trafic et un juge plus coûteux sur un sous-ensemble.

samplingComportement
omisChaque span sélectionné reçoit une note.
{"type": "probabilistic", "percentage": 10}Chaque span a une probabilité indépendante de 10 % d'être noté.
{"type": "attribute_hash", "attribute": "user.id", "percentage": 10}Applique un hachage à la valeur de l'attribut : un même utilisateur est toujours inclus ou toujours exclu. Utilisez cette méthode pour suivre des sessions ou des utilisateurs dans leur ensemble. Les spans sans cet attribut ne sont jamais notés.

percentage doit être supérieur à 0 et inférieur ou égal à 100. Dans AI Studio, la section Taux d'échantillonnage définit un taux unique pour tous les juges de l'évaluation live, et Avancé → Cohorte d'échantillonnage stable bascule sur attribute_hash. Pour définir un taux différent par scorer, utilisez l'API.

Cycle de vie

Cycle de vie

ActionRequêteEffet
Mettre en pause ou reprendrePUT /pipelines/{id} avec {"enabled": false} ou trueS'applique à tous les évaluateurs de l'évaluation.
Modifier le filtrePUT avec selectorsS'applique à tous les évaluateurs de l'évaluation.
Modifier les évaluateurs, les associations de variables ou l'échantillonnagePUT avec la liste definitions complèteCopie à nouveau la version la plus récente de chaque évaluateur.
SupprimerDELETE /pipelines/{id}Suppression définitive, y compris des configurations du pipeline. Les résultats passés restent dans la plateforme de télémétrie.

Les workers prennent en compte chaque modification peu après son enregistrement. Aucun redémarrage ni déploiement n'est nécessaire.

Dans AI Studio

Dans AI Studio

Évaluer → Évaluations → En continu → Nouvelle évaluation crée le même objet :

  1. Trafic cible. Construire le filtre et afficher un aperçu du volume de spans correspondants sur les dernières 24 heures, les sept derniers jours ou les 30 derniers jours.
  2. Taux d'échantillonnage. Choisissez la proportion de spans correspondants à évaluer.
  3. Les juges. Ajoutez des juges enregistrés et associez leurs variables. Pour les tester sur un span d'exemple, sélectionnez Test.
  4. Démarrer. Donnez un nom et une description à l'évaluation en continu.

La page de détails affiche le volume de traces, l'évolution et la distribution des notes, la couverture de l'évaluation et les résultats par span.