arize-annotation

Par github · awesome-copilot

INVOQUER CETTE SKILL lors de la création, de la gestion ou de l'utilisation de configs d'annotation sur Arize (catégorielle, continue, freeform), ou lors de l'application d'annotations humaines aux spans d'un projet via le SDK Python. Les configs constituent le schéma de labels pour le feedback humain sur les spans et autres surfaces dans l'interface Arize. Déclencheurs : annotation config, label schema, schéma de feedback humain, annotation en masse de spans, update_annotations.

npx skills add https://github.com/github/awesome-copilot --skill arize-annotation

Skill d'Annotation Arize

Ce skill se concentre sur les configs d'annotation — le schéma pour les retours humains — et sur l'annotation programmatique des spans de projet via le SDK Python. L'examen humain dans l'interface Arize (incluant les files d'annotation, les datasets et les expériences) dépend toujours de ces configs ; il n'existe pas encore de CLI ax pour les files.

Direction : L'étiquetage humain dans Arize attache les valeurs définies par les configs aux spans, exemples de dataset, enregistrements liés aux expériences et éléments de file dans l'interface du produit. Ce qui est documenté ici : ax annotation-configs et les mises à jour de spans en masse avec ArizeClient.spans.update_annotations.


Prérequis

Procédez directement à la tâche — exécutez la commande ax dont vous avez besoin. Ne vérifiez PAS les versions, les variables d'environnement ou les profils au préalable.

Si une commande ax échoue, dépannez en fonction de l'erreur :

  • command not found ou erreur de version → voir references/ax-setup.md
  • 401 Unauthorized / clé API manquante → exécutez ax profiles show pour inspecter le profil actuel. Si le profil est manquant ou la clé API est incorrecte : vérifiez .env pour ARIZE_API_KEY et utilisez-la pour créer/mettre à jour le profil via references/ax-profiles.md. Si .env n'a pas de clé non plus, demandez à l'utilisateur sa clé API Arize (https://app.arize.com/admin > API Keys)
  • Space ID inconnu → vérifiez .env pour ARIZE_SPACE_ID, ou exécutez ax spaces list -o json, ou demandez à l'utilisateur

Concepts

Qu'est-ce qu'une Config d'Annotation ?

Une config d'annotation définit le schéma pour un seul type de label de retour humain. Avant que quiconque puisse annoter un span, un enregistrement de dataset, une sortie d'expérience ou un élément de file, une config doit exister pour ce label dans le space.

Champ Description
Name Identifiant descriptif (ex. Correctness, Helpfulness). Doit être unique dans le space.
Type categorical (sélectionner dans une liste), continuous (plage numérique), ou freeform (texte libre).
Values Pour categorical : tableau de paires {"label": str, "score": number}.
Min/Max Score Pour continuous : limites numériques.
Optimization Direction Si les scores plus élevés sont meilleurs (maximize) ou pires (minimize). Utilisé pour afficher les tendances dans l'interface.

Où les labels sont appliqués (surfaces)

Surface Chemin typique
Project spans SDK Python spans.update_annotations (ci-dessous) et/ou l'interface Arize
Dataset examples Interface Arize (flux d'étiquetage humain) ; les configs doivent exister dans le space
Experiment outputs Souvent examinés aux côtés des datasets ou traces dans l'interface — voir arize-experiment, arize-dataset
Annotation queue items Interface Arize ; les configs doivent exister — aucune commande ax queue documentée ici pour le moment

Assurez-vous toujours que la config d'annotation pertinente existe dans le space avant de vous attendre à ce que les labels persistent.


CRUD de base : Configs d'Annotation

List

ax annotation-configs list --space-id SPACE_ID
ax annotation-configs list --space-id SPACE_ID -o json
ax annotation-configs list --space-id SPACE_ID --limit 20

Create — Categorical

Les configs categorical présentent un ensemble fixe de labels parmi lesquels les relecteurs peuvent choisir.

ax annotation-configs create \
  --name "Correctness" \
  --space-id SPACE_ID \
  --type categorical \
  --values '[{"label": "correct", "score": 1}, {"label": "incorrect", "score": 0}]' \
  --optimization-direction maximize

Paires de labels binaires courantes :

  • correct / incorrect
  • helpful / unhelpful
  • safe / unsafe
  • relevant / irrelevant
  • pass / fail

Create — Continuous

Les configs continuous permettent aux relecteurs d'entrer un score numérique dans une plage définie.

ax annotation-configs create \
  --name "Quality Score" \
  --space-id SPACE_ID \
  --type continuous \
  --minimum-score 0 \
  --maximum-score 10 \
  --optimization-direction maximize

Create — Freeform

Les configs freeform collectent des retours textuels ouverts. Aucun flag supplémentaire n'est nécessaire au-delà du nom, du space et du type.

ax annotation-configs create \
  --name "Reviewer Notes" \
  --space-id SPACE_ID \
  --type freeform

Get

ax annotation-configs get ANNOTATION_CONFIG_ID
ax annotation-configs get ANNOTATION_CONFIG_ID -o json

Delete

ax annotation-configs delete ANNOTATION_CONFIG_ID
ax annotation-configs delete ANNOTATION_CONFIG_ID --force   # ignorer la confirmation

Note : La suppression est irréversible. Toutes les associations de files d'annotation à cette config sont également supprimées dans le produit (les files peuvent subsister ; corriger les associations dans l'interface Arize si nécessaire).


Application d'Annotations aux Spans (SDK Python)

Utilisez le SDK Python pour appliquer en masse des annotations aux project spans quand vous avez déjà des labels (par ex. à partir d'une export de review ou d'un outil d'étiquetage externe).

import pandas as pd
from arize import ArizeClient

import os

client = ArizeClient(api_key=os.environ["ARIZE_API_KEY"])

# Construire un DataFrame avec des colonnes d'annotation
# Requis : context.span_id + au moins une annotation.<name>.label ou annotation.<name>.score
annotations_df = pd.DataFrame([
    {
        "context.span_id": "span_001",
        "annotation.Correctness.label": "correct",
        "annotation.Correctness.updated_by": "reviewer@example.com",
    },
    {
        "context.span_id": "span_002",
        "annotation.Correctness.label": "incorrect",
        "annotation.Correctness.updated_by": "reviewer@example.com",
    },
])

response = client.spans.update_annotations(
    space_id=os.environ["ARIZE_SPACE_ID"],
    project_name="your-project",
    dataframe=annotations_df,
    validate=True,
)

Schéma de colonne DataFrame :

Colonne Requis Description
context.span_id oui Le span à annoter
annotation.<name>.label l'un des Label categorical ou freeform
annotation.<name>.score l'un des Score numérique
annotation.<name>.updated_by non Identifiant de l'annotateur (email ou nom)
annotation.<name>.updated_at non Timestamp en millisecondes depuis l'époque
annotation.notes non Notes textuelles libres sur le span

Limitation : Les annotations s'appliquent uniquement aux spans dans les 31 jours avant la soumission.


Dépannage

Problème Solution
ax: command not found Voir references/ax-setup.md
401 Unauthorized La clé API n'a peut-être pas accès à ce space. Vérifiez sur https://app.arize.com/admin > API Keys
Annotation config not found ax annotation-configs list --space-id SPACE_ID
409 Conflict on create Le nom existe déjà dans le space. Utilisez un nom différent ou obtenez l'ID de config existant.
Examen humain / files dans l'interface Utilisez l'app Arize ; assurez-vous que les configs existent — aucune CLI ax annotation-queue pour le moment
Erreurs SDK span ou spans manquants Confirmez project_name, space_id et les IDs de span ; utilisez arize-trace pour exporter les spans

Skills Connexes

  • arize-trace : Exporter les spans pour trouver les IDs de span et les plages temporelles
  • arize-dataset : Trouver les IDs de dataset et les IDs d'exemple
  • arize-evaluator : LLM automatisé en tant que juge aux côtés de l'annotation humaine
  • arize-experiment : Expériences liées aux datasets et workflows d'évaluation
  • arize-link : Liens profonds vers les configs d'annotation et les files dans l'interface Arize

Enregistrer les Credentials pour une Utilisation Future

Voir references/ax-profiles.md § Save Credentials for Future Use.

Skills similaires