Executer l'evaluation
Avec votre jeu de donnees pret, il est temps de construire le pipeline d’evaluation. Le processus : prendre chaque cas de test, le fusionner avec le prompt, l’envoyer a Claude, puis noter les resultats.
Les trois fonctions du pipeline
run_prompt : execution d’un prompt
Cette fonction prend un cas de test et le fusionne avec le modele de prompt :
def run_prompt(test_case):
"""Fusionne le prompt et l'entree du cas de test, puis renvoie le resultat"""
prompt = f"""
Veuillez resoudre la tache suivante :
{test_case["task"]}
"""
messages = []
add_user_message(messages, prompt)
output = chat(messages)
return output
Le prompt est volontairement minimaliste pour l’instant. Sans instructions de formatage, Claude renverra probablement des sorties plus verbeuses que necessaire.
run_test_case : orchestration d’un cas
Cette fonction orchestre l’execution d’un seul cas de test et la notation du resultat :
def run_test_case(test_case):
"""Appelle run_prompt, puis note le resultat"""
output = run_prompt(test_case)
# TODO - Notation
score = 10
return {
"output": output,
"test_case": test_case,
"score": score
}
Le score est fixe a 10 pour l’instant. La logique de notation sera developpee dans les lecons suivantes.
run_eval : orchestrateur principal
Cette fonction traite l’ensemble du jeu de donnees :
def run_eval(dataset):
"""Charge le jeu de donnees et appelle run_test_case pour chaque cas"""
results = []
for test_case in dataset:
result = run_test_case(test_case)
results.append(result)
return results
Lancer l’evaluation
with open("dataset.json", "r") as f:
dataset = json.load(f)
results = run_eval(dataset)
print(json.dumps(results, indent=2))
La premiere execution prend du temps : meme avec Claude Haiku, traiter un jeu de donnees complet peut necessiter 30 secondes ou plus.
Ce que nous avons accompli
A ce stade, le pipeline de base fonctionne :
- Prendre des cas de test du jeu de donnees
- Les fusionner avec des modeles de prompts
- Obtenir des reponses de Claude
- Collecter et organiser tous les resultats
La piece manquante est la notation intelligente. C’est la ou la sophistication des systemes d’evaluation entre en jeu.