Compétence Dataset Arize
Concepts
- Dataset = une collection versionnée d'exemples utilisés pour l'évaluation et l'expérimentation
- Dataset Version = un snapshot d'un dataset à un moment donné ; les mises à jour peuvent être in-place ou créer une nouvelle version
- Example = un seul enregistrement dans un dataset avec des champs arbitraires définis par l'utilisateur (par ex.
question,answer,context) - Space = un conteneur organisationnel ; les datasets appartiennent à un space
Les champs gérés par le système sur les exemples (id, created_at, updated_at) sont auto-générés par le serveur -- ne les incluez jamais dans les payloads de création ou d'ajout.
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 foundou erreur de version → voir references/ax-setup.md401 Unauthorized/ clé API manquante → exécutezax profiles showpour inspecter le profil actuel. Si le profil est manquant ou la clé API incorrecte : vérifiez.envpourARIZE_API_KEYet utilisez-la pour créer/mettre à jour le profil via references/ax-profiles.md. Si.envn'a pas non plus de clé, demandez à l'utilisateur sa clé API Arize (https://app.arize.com/admin > API Keys)- Space ID inconnu → vérifiez
.envpourARIZE_SPACE_ID, ou exécutezax spaces list -o json, ou demandez à l'utilisateur - Project flou → vérifiez
.envpourARIZE_DEFAULT_PROJECT, ou demandez, ou exécutezax projects list -o json --limit 100et présentez comme options sélectionnables
Lister les Datasets : ax datasets list
Parcourez les datasets dans un space. La sortie va vers stdout.
ax datasets list
ax datasets list --space-id SPACE_ID --limit 20
ax datasets list --cursor CURSOR_TOKEN
ax datasets list -o json
Flags
| Flag | Type | Par défaut | Description |
|---|---|---|---|
--space-id |
string | depuis profil | Filtrer par space |
--limit, -l |
int | 15 | Résultats max (1-100) |
--cursor |
string | aucun | Curseur de pagination depuis la réponse précédente |
-o, --output |
string | table | Format de sortie : table, json, csv, parquet, ou chemin de fichier |
-p, --profile |
string | default | Profil de configuration |
Obtenir un Dataset : ax datasets get
Recherche rapide de métadonnées -- retourne le nom du dataset, le space, les timestamps et la liste des versions.
ax datasets get DATASET_ID
ax datasets get DATASET_ID -o json
Flags
| Flag | Type | Par défaut | Description |
|---|---|---|---|
DATASET_ID |
string | requis | Argument positionnel |
-o, --output |
string | table | Format de sortie |
-p, --profile |
string | default | Profil de configuration |
Champs de réponse
| Champ | Type | Description |
|---|---|---|
id |
string | ID du dataset |
name |
string | Nom du dataset |
space_id |
string | Space auquel ce dataset appartient |
created_at |
datetime | Quand le dataset a été créé |
updated_at |
datetime | Heure de dernière modification |
versions |
array | Liste des versions du dataset (id, name, dataset_id, created_at, updated_at) |
Exporter un Dataset : ax datasets export
Téléchargez tous les exemples dans un fichier. Utilisez --all pour les datasets plus grands que 500 exemples (export en masse illimité).
ax datasets export DATASET_ID
# -> dataset_abc123_20260305_141500/examples.json
ax datasets export DATASET_ID --all
ax datasets export DATASET_ID --version-id VERSION_ID
ax datasets export DATASET_ID --output-dir ./data
ax datasets export DATASET_ID --stdout
ax datasets export DATASET_ID --stdout | jq '.[0]'
Flags
| Flag | Type | Par défaut | Description |
|---|---|---|---|
DATASET_ID |
string | requis | Argument positionnel |
--version-id |
string | latest | Exporter une version spécifique du dataset |
--all |
bool | false | Export en masse illimité (utiliser pour datasets > 500 exemples) |
--output-dir |
string | . |
Répertoire de sortie |
--stdout |
bool | false | Imprimer JSON sur stdout au lieu de fichier |
-p, --profile |
string | default | Profil de configuration |
Règle d'escalade automatique agent : Si un export retourne exactement 500 exemples, le résultat est probablement tronqué -- réexécutez avec --all pour obtenir le dataset complet.
Vérification de complétude d'export : Après exportation, confirmez que le nombre de lignes correspond à celui signalé par le serveur :
# Obtenir le nombre signalé par le serveur depuis les métadonnées du dataset
ax datasets get DATASET_ID -o json | jq '.versions[-1] | {version: .id, examples: .example_count}'
# Comparer à ce qui a été exporté
jq 'length' dataset_*/examples.json
# Si les nombres diffèrent, réexportez avec --all
La sortie est un array JSON d'objets exemples. Chaque exemple a des champs système (id, created_at, updated_at) plus tous les champs définis par l'utilisateur :
[
{
"id": "ex_001",
"created_at": "2026-01-15T10:00:00Z",
"updated_at": "2026-01-15T10:00:00Z",
"question": "What is 2+2?",
"answer": "4",
"topic": "math"
}
]
Créer un Dataset : ax datasets create
Créez un nouveau dataset à partir d'un fichier de données.
ax datasets create --name "My Dataset" --space-id SPACE_ID --file data.csv
ax datasets create --name "My Dataset" --space-id SPACE_ID --file data.json
ax datasets create --name "My Dataset" --space-id SPACE_ID --file data.jsonl
ax datasets create --name "My Dataset" --space-id SPACE_ID --file data.parquet
Flags
| Flag | Type | Requis | Description |
|---|---|---|---|
--name, -n |
string | oui | Nom du dataset |
--space-id |
string | oui | Space dans lequel créer le dataset |
--file, -f |
path | oui | Fichier de données : CSV, JSON, JSONL, ou Parquet |
-o, --output |
string | non | Format de sortie pour les métadonnées du dataset retournées |
-p, --profile |
string | non | Profil de configuration |
Passer des données via stdin
Utilisez --file - pour piper les données directement -- pas besoin de fichier temporaire :
echo '[{"question": "What is 2+2?", "answer": "4"}]' | ax datasets create --name "my-dataset" --space-id SPACE_ID --file -
# Ou avec un heredoc
ax datasets create --name "my-dataset" --space-id SPACE_ID --file - << 'EOF'
[{"question": "What is 2+2?", "answer": "4"}]
EOF
Pour ajouter des lignes à un dataset existant, utilisez ax datasets append --json '[...]' à la place -- pas besoin de fichier.
Formats de fichier supportés
| Format | Extension | Notes |
|---|---|---|
| CSV | .csv |
Les en-têtes de colonne deviennent des noms de champs |
| JSON | .json |
Array d'objets |
| JSON Lines | .jsonl |
Un objet par ligne (PAS un array JSON) |
| Parquet | .parquet |
Les noms de colonne deviennent des noms de champs ; préserve les types |
Pièges de format :
- CSV : Perd les informations de type -- les dates deviennent des strings,
nulldevient une string vide. Utilisez JSON/Parquet pour préserver les types. - JSONL : Chaque ligne est un objet JSON séparé. Un array JSON (
[{...}, {...}]) dans un fichier.jsonléchouera -- utilisez l'extension.jsonà la place. - Parquet : Préserve les types de colonne. Requiert
pandas/pyarrowpour lire localement :pd.read_parquet("examples.parquet").
Ajouter des Exemples : ax datasets append
Ajoutez des exemples à un dataset existant. Deux modes d'entrée -- utilisez celui qui convient.
JSON inline (agent-friendly)
Générez le payload directement -- pas besoin de fichiers temporaires :
ax datasets append DATASET_ID --json '[{"question": "What is 2+2?", "answer": "4"}]'
ax datasets append DATASET_ID --json '[
{"question": "What is gravity?", "answer": "A fundamental force..."},
{"question": "What is light?", "answer": "Electromagnetic radiation..."}
]'
Depuis un fichier
ax datasets append DATASET_ID --file new_examples.csv
ax datasets append DATASET_ID --file additions.json
Vers une version spécifique
ax datasets append DATASET_ID --json '[{"q": "..."}]' --version-id VERSION_ID
Flags
| Flag | Type | Requis | Description |
|---|---|---|---|
DATASET_ID |
string | oui | Argument positionnel |
--json |
string | mutex | Array JSON d'objets exemples |
--file, -f |
path | mutex | Fichier de données (CSV, JSON, JSONL, Parquet) |
--version-id |
string | non | Ajouter à une version spécifique (par défaut : latest) |
-o, --output |
string | non | Format de sortie pour les métadonnées du dataset retournées |
-p, --profile |
string | non | Profil de configuration |
Exactement l'un de --json ou --file est requis.
Validation
- Chaque exemple doit être un objet JSON avec au moins un champ défini par l'utilisateur
- Maximum 100 000 exemples par demande
Validation de schéma avant ajout : Si le dataset a déjà des exemples, inspectez son schéma avant d'ajouter pour éviter les décalages de champs silencieux :
# Vérifier les noms de champs existants dans le dataset
ax datasets export DATASET_ID --stdout | jq '.[0] | keys'
# Vérifier que vos nouvelles données ont des noms de champs correspondants
echo '[{"question": "..."}]' | jq '.[0] | keys'
# Les deux sorties doivent montrer les mêmes champs définis par l'utilisateur
Les champs sont free-form : les champs supplémentaires dans les nouveaux exemples sont ajoutés, et les champs manquants deviennent null. Cependant, les fautes de frappe dans les noms de champs (par ex. queston vs question) créent silencieusement de nouvelles colonnes -- vérifiez l'orthographe avant d'ajouter.
Supprimer un Dataset : ax datasets delete
ax datasets delete DATASET_ID
ax datasets delete DATASET_ID --force # sauter le prompt de confirmation
Flags
| Flag | Type | Par défaut | Description |
|---|---|---|---|
DATASET_ID |
string | requis | Argument positionnel |
--force, -f |
bool | false | Sauter le prompt de confirmation |
-p, --profile |
string | default | Profil de configuration |
Workflows
Trouver un dataset par nom
Les utilisateurs font souvent référence aux datasets par nom plutôt que par ID. Résolvez un nom en ID avant d'exécuter d'autres commandes :
# Trouver l'ID du dataset par nom
ax datasets list -o json | jq '.[] | select(.name == "eval-set-v1") | .id'
# Si la liste est paginée, récupérez plus
ax datasets list -o json --limit 100 | jq '.[] | select(.name | test("eval-set")) | {id, name}'
Créer un dataset à partir d'un fichier pour l'évaluation
- Préparez un fichier CSV/JSON/Parquet avec vos colonnes d'évaluation (par ex.
input,expected_output)- Si vous générez des données inline, pilez-les via stdin en utilisant
--file -(voir la section Create Dataset)
- Si vous générez des données inline, pilez-les via stdin en utilisant
ax datasets create --name "eval-set-v1" --space-id SPACE_ID --file eval_data.csv- Vérifiez :
ax datasets get DATASET_ID - Utilisez l'ID du dataset pour exécuter des expériences
Ajouter des exemples à un dataset existant
# Trouver le dataset
ax datasets list
# Ajouter inline ou depuis un fichier (voir la section Append Examples pour la syntaxe complète)
ax datasets append DATASET_ID --json '[{"question": "...", "answer": "..."}]'
ax datasets append DATASET_ID --file additional_examples.csv
Télécharger un dataset pour une analyse hors ligne
ax datasets list-- trouver le datasetax datasets export DATASET_ID-- télécharger vers fichier- Parser le JSON :
jq '.[] | .question' dataset_*/examples.json
Exporter une version spécifique
# Lister les versions
ax datasets get DATASET_ID -o json | jq '.versions'
# Exporter cette version
ax datasets export DATASET_ID --version-id VERSION_ID
Itérer sur un dataset
- Exporter la version actuelle :
ax datasets export DATASET_ID - Modifier les exemples localement
- Ajouter de nouvelles lignes :
ax datasets append DATASET_ID --file new_rows.csv - Ou créer une nouvelle version :
ax datasets create --name "eval-set-v2" --space-id SPACE_ID --file updated_data.json
Pipe export vers d'autres outils
# Compter les exemples
ax datasets export DATASET_ID --stdout | jq 'length'
# Extraire un seul champ
ax datasets export DATASET_ID --stdout | jq '.[].question'
# Convertir en CSV avec jq
ax datasets export DATASET_ID --stdout | jq -r '.[] | [.question, .answer] | @csv'
Schéma d'Exemple de Dataset
Les exemples sont des objets JSON free-form. Il n'y a pas de schéma fixe -- les colonnes sont quels que soient les champs que vous fournissez. Les champs gérés par le système sont ajoutés par le serveur :
| Champ | Type | Géré par | Notes |
|---|---|---|---|
id |
string | serveur | UUID auto-généré. Requis en mise à jour, interdit en création/ajout |
created_at |
datetime | serveur | Timestamp de création immuable |
updated_at |
datetime | serveur | Auto-mis à jour en modification |
| (tout champ utilisateur) | any JSON type | utilisateur | String, number, boolean, null, objet imbriqué, array |
Compétences Liées
- arize-trace : Exporter les spans de production pour comprendre quelles données mettre dans les datasets → utilisez
arize-trace - arize-experiment : Exécuter des évaluations contre ce dataset → prochaine étape est
arize-experiment - arize-prompt-optimization : Utiliser dataset + résultats d'expériences pour améliorer les prompts → utilisez
arize-prompt-optimization
Dépannage
| Problème | Solution |
|---|---|
ax: command not found |
Voir references/ax-setup.md |
401 Unauthorized |
La clé API est incorrecte, expirée, ou n'a pas accès à ce space. Corriger le profil en utilisant references/ax-profiles.md. |
No profile found |
Aucun profil n'est configuré. Voir references/ax-profiles.md pour en créer un. |
Dataset not found |
Vérifier l'ID du dataset avec ax datasets list |
File format error |
Supportés : CSV, JSON, JSONL, Parquet. Utiliser --file - pour lire depuis stdin. |
platform-managed column |
Supprimer id, created_at, updated_at des payloads de création/ajout |
reserved column |
Supprimer time, count, ou tout champ source_record_* |
Provide either --json or --file |
L'ajout requiert exactement une source d'entrée |
Examples array is empty |
Assurez-vous que votre array JSON ou fichier contient au moins un exemple |
not a JSON object |
Chaque élément de l'array --json doit être un objet {...}, pas une string ou number |
Enregistrer les Credentials pour une Utilisation Future
Voir references/ax-profiles.md § Save Credentials for Future Use.