Générer des jeux de données de test
Mis à jour le 30 juillet 2026
Pour évaluer un prompt, il faut des données de test — des dizaines de cas représentatifs de ce que vos utilisateurs demanderont vraiment. Les écrire à la main est possible, et c’est même recommandé pour les cas critiques que vous connaissez ; mais c’est lent, et votre imagination s’épuise vite après le dixième exemple. L’alternative pragmatique : demander à Claude de générer le jeu de données lui-même. Le modèle excelle à produire des variations plausibles autour d’un thème, exactement ce dont un jeu de test a besoin pour couvrir large.
Générer les données avec Claude
Notre prompt à évaluer aide à écrire du code AWS — des fonctions Python, des objets JSON, des expressions régulières. Le générateur de cas de test doit donc produire des tâches de ce domaine, ni trop simples ni trop vastes :
def generate_dataset():
prompt = """
Génère un jeu de données d'évaluation. Le jeu sera utilise pour
evaluer des prompts qui generent du Python, du JSON ou des Regex
pour des taches liees a AWS. Génère un tableau d'objets JSON,
chacun representant une tache.
Exemple :
```json
[
{"task": "Description de la tâche"},
...
]
```
* Concentre-toi sur des taches resolubles par une seule fonction Python,
un seul objet JSON ou une seule regex
* Evite les taches necessitant beaucoup de code
Genere 3 objets.
"""
Trois choix de rédaction méritent votre attention, car ils se transposent à n’importe quel domaine. D’abord, le prompt explique à quoi servira le jeu de données : Claude calibre mieux ses exemples quand il connaît leur usage. Ensuite, l’exemple de format montre la structure exacte attendue — un tableau d’objets avec une clé task — ce qui vaut mieux que toute description abstraite. Enfin, les contraintes de périmètre (« résolubles par une seule fonction », « évite les tâches nécessitant beaucoup de code ») empêchent la dérive naturelle du générateur vers des cas spectaculaires mais inexploitables : un jeu de test doit contenir des tâches que votre prompt est censé réussir, pas des projets entiers.
Nous générons 3 objets ici pour garder l’exemple lisible ; en conditions réelles, visez plutôt 20 à 50 cas, quitte à appeler le générateur plusieurs fois avec des angles différents (tâches simples, cas limites, formulations ambiguës).
Extraction du JSON propre
Un générateur de données ne sert à rien si sa sortie n’est pas parsable. Plutôt que d’espérer que Claude réponde en JSON pur, nous l’y contraignons avec la technique vue dans la section précédente — le pré-remplissage combiné à une séquence d’arrêt :
messages = []
add_user_message(messages, prompt)
add_assistant_message(messages, "```json")
text = chat(messages, stop_sequences=["```"])
return json.loads(text)
Le pré-remplissage "```json" force Claude à commencer sa réponse directement dans un bloc de code JSON — il ne peut plus ouvrir par « Voici votre jeu de données : ». La séquence d’arrêt sur la clôture du bloc garantit que la génération s’arrête à la fin du JSON, sans commentaire de conclusion. Entre les deux, il n’y a que du JSON : json.loads fonctionne à tous les coups. Cette paire pré-remplissage + stop sequence est le duo de fiabilité à retenir pour toute extraction structurée.
Sauvegarder le jeu de données
dataset = generate_dataset()
with open('dataset.json', 'w') as f:
json.dump(dataset, f, indent=2)
La sauvegarde sur disque n’est pas un détail : le jeu de données doit être figé pour que vos évaluations soient comparables. Si vous régénériez les cas à chaque exécution, deux scores successifs mesureraient des choses différentes, et vous ne sauriez jamais si c’est le prompt ou le jeu qui a changé. Générez une fois, versionnez le fichier, et faites toutes vos comparaisons sur cette base — vous ne le régénérerez que pour l’enrichir délibérément.
Voici le genre de cas que produit ce générateur : créer une fonction Python pour extraire la région AWS d’un ARN, écrire une configuration JSON pour une Lambda, développer une regex qui valide un nom de bucket S3. Des tâches réalistes, bien délimitées, exactement dans le périmètre du prompt à évaluer. Relisez toujours le jeu généré avant de l’adopter : supprimez les doublons et les cas hors sujet — deux minutes de curation qui fiabilisent toutes les mesures qui suivront.
Points clés à retenir
- Générer le jeu de test avec Claude est rapide et couvre large ; la curation manuelle reste votre contrôle qualité
- Dites au générateur à quoi serviront les données et montrez le format exact attendu
- Les contraintes de périmètre évitent les cas spectaculaires mais inexploitables
- Pré-remplissage
"```json"+stop_sequences=["```"]= extraction JSON fiable à tous les coups - Figez le jeu dans un fichier versionné : des évaluations comparables exigent des données identiques