Aller au contenu principal

Generer des jeux de test

Construire un workflow d’evaluation personnalise commence par definir un objectif clair et generer des donnees de test. Dans cet exemple, nous construisons un prompt qui aide les utilisateurs a ecrire du code specifique a AWS : fonctions Python, configurations JSON, ou expressions regulieres, sans explications ni formatage superflu.

Definir l’objectif

Le prompt doit accepter une description de tache et renvoyer l’un de ces trois types de sortie :

  • Code Python
  • Configuration JSON
  • Expression reguliere

Exigence cle : les reponses ne doivent contenir que le code demande, sans en-tetes, pieds de page ni explications.

Le prompt initial est volontairement simple : “Veuillez fournir une solution a la tache suivante : {task}“

Creer les jeux de donnees

Un jeu de donnees d’evaluation contient des exemples d’entrees que vous injecterez dans votre prompt. Chaque cas de test est combine avec le prompt et envoye a Claude pour voir comment il performe sur differents scenarios.

Deux approches pour creer ces jeux :

  1. Manuellement : ecrire les cas de test a la main
  2. Automatiquement : les generer avec Claude (un modele rapide comme Haiku est suffisant)

Generation automatique avec du code

def generate_dataset():
    prompt = """
    Generez 3 taches AWS qui necessitent des solutions Python, JSON ou Regex.

    Concentrez-vous sur des taches resolvables avec une seule fonction Python,
    un seul objet JSON, ou qui ne necessitent pas beaucoup de code.

    Format de sortie :
    [
        {
            "task": "Description de la tache"
        },
        ...
    ]

    Generez 3 objets.
    """

    messages = []
    add_user_message(messages, prompt)
    add_assistant_message(messages, "```json")
    text = chat(messages, stop_sequences=["```"])
    return json.loads(text)

Cette approche utilise le pre-remplissage du message assistant avec des sequences d’arret pour extraire du JSON propre.

Sauvegarder le jeu de donnees

Sauvegardez le resultat pour eviter de le regenerer a chaque fois :

dataset = generate_dataset()
with open("dataset.json", "w") as f:
    json.dump(dataset, f, indent=2)

Le jeu genere cree des taches AWS realistes : extraction d’identifiants de compte depuis des ARN, schemas JSON pour des configurations EC2, patterns regex pour des noms de buckets S3. Trois cas de test suffisent pour le developpement initial, mais une evaluation en production necessitera beaucoup plus d’exemples.