Workflow typique d'evaluation
Les 5 etapes
Un pipeline d’evaluation suit toujours le meme schema :
- Rediger un prompt
- Creer un jeu de donnees de test
- Envoyer chaque cas de test a Claude
- Noter chaque reponse (score de 1 a 10)
- Modifier le prompt et recommencer
Voyons cela avec un exemple concret.
Exemple : evaluer un prompt de questions-reponses
Etape 1 : Le prompt
Imaginons un prompt simple pour un assistant qui repond a des questions de culture generale :
PROMPT_V1 = "Tu es un assistant pedagogique. Reponds aux questions de facon claire et concise."
Etape 2 : Le jeu de donnees
On cree un ensemble de questions couvrant differents domaines :
dataset = [
{
"question": "Combien font 15% de 200 ?",
"expected": "30",
"domain": "mathematiques"
},
{
"question": "Quelle est la temperature ideale pour faire lever une pate a pain ?",
"expected": "Entre 24 et 27 degres Celsius",
"domain": "cuisine"
},
{
"question": "Quelle est la plus grande etoile connue par son rayon ?",
"expected": "UY Scuti ou Stephenson 2-18",
"domain": "astronomie"
}
]
Chaque cas contient : la question a poser, la reponse attendue (pour reference), et le domaine (pour analyser les forces/faiblesses).
Etape 3 : Envoyer a Claude
On fait tourner le prompt sur chaque question :
import anthropic
client = anthropic.Anthropic()
def run_prompt(question, system_prompt):
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=300,
system=system_prompt,
messages=[{"role": "user", "content": question}]
)
return response.content[0].text
resultats = []
for cas in dataset:
reponse = run_prompt(cas["question"], PROMPT_V1)
resultats.append({
"question": cas["question"],
"expected": cas["expected"],
"response": reponse,
"domain": cas["domain"]
})
Etape 4 : Noter les reponses
Pour l’instant, on utilise un notateur humain (on automatisera plus tard). On attribue un score de 1 a 10 :
# Notation manuelle pour l'exemple
scores_v1 = [8, 7, 7] # math: 8, cuisine: 7, astronomie: 7
moyenne_v1 = sum(scores_v1) / len(scores_v1)
print(f"Score moyen V1 : {moyenne_v1:.2f}")
# -> Score moyen V1 : 7.33
Etape 5 : Modifier et comparer
On ameliore le prompt :
PROMPT_V2 = """Tu es un assistant pedagogique expert.
Pour chaque question :
- Donne d'abord la reponse directe
- Puis une explication courte (2-3 phrases max)
- Si c'est un calcul, montre les etapes"""
On relance l’evaluation :
resultats_v2 = []
for cas in dataset:
reponse = run_prompt(cas["question"], PROMPT_V2)
resultats_v2.append({
"question": cas["question"],
"expected": cas["expected"],
"response": reponse,
"domain": cas["domain"]
})
# Notation V2
scores_v2 = [10, 8, 8] # Amelioration sur les 3 domaines
moyenne_v2 = sum(scores_v2) / len(scores_v2)
print(f"Score moyen V2 : {moyenne_v2:.2f}")
# -> Score moyen V2 : 8.67
Comparer les versions
print(f"V1 : {moyenne_v1:.2f}")
print(f"V2 : {moyenne_v2:.2f}")
print(f"Amelioration : +{moyenne_v2 - moyenne_v1:.2f}")
V1 : 7.33
V2 : 8.67
Amelioration : +1.34
Le prompt V2 est objectivement meilleur sur ce jeu de test. Pas d’impression subjective, pas de “je trouve que ca semble mieux” — un chiffre mesurable.
L’analyse detaillee
Au-dela du score moyen, regardez les scores par domaine :
for i, cas in enumerate(dataset):
print(f"{cas['domain']:15s} | V1: {scores_v1[i]} | V2: {scores_v2[i]} | Delta: {scores_v2[i] - scores_v1[i]:+d}")
mathematiques | V1: 8 | V2: 10 | Delta: +2
cuisine | V1: 7 | V2: 8 | Delta: +1
astronomie | V1: 7 | V2: 8 | Delta: +1
L’amelioration est plus forte en maths (grace a l’instruction “montre les etapes”). Ce type d’analyse vous guide pour les iterations suivantes.
Les limites de cet exemple
Cet exemple a 3 cas de test est pedagogique, mais insuffisant en pratique. Pour une evaluation fiable :
- Minimum 20-50 cas pour une evaluation significative
- Notation automatisee (par modele AI) pour passer a l’echelle
- Reproductibilite : temperature a 0 pour des resultats stables
Les prochaines lecons couvrent exactement ces points.
Resume du workflow
Prompt V1 → Dataset → Claude → Notation → Score 7.33
↓
Prompt V2 → Dataset → Claude → Notation → Score 8.67 ✓
↓
Prompt V3 → Dataset → Claude → Notation → Score ?
↓
...jusqu'a satisfaction
Le jeu de donnees et le systeme de notation restent constants. Seul le prompt change. C’est ce qui rend la comparaison valide.