Evaluation par code
L’evaluation par code verifie que le code genere par l’IA a une syntaxe valide et respecte le format attendu.
Fonctions de validation syntaxique
def validate_json(text):
try:
json.loads(text.strip())
return 10
except json.JSONDecodeError:
return 0
def validate_python(text):
try:
ast.parse(text.strip())
return 10
except SyntaxError:
return 0
def validate_regex(text):
try:
re.compile(text.strip())
return 10
except re.error:
return 0
Chaque fonction tente de parser le texte dans le format correspondant. Succes = 10, echec = 0.
Format du jeu de donnees
Les cas de test doivent specifier le format attendu :
{
"task": "Creer une fonction Python pour valider un username IAM AWS",
"format": "python"
}
Ameliorer le prompt
Ajoutez des instructions claires sur le format :
* Reponds uniquement avec du Python, du JSON ou une Regex
* N'ajoute aucun commentaire ni explication
Utilisez aussi le pre-remplissage :
add_assistant_message(messages, "```code")
Combiner les scores
model_score = grade_by_model(test_case, output)["score"]
syntax_score = grade_syntax(output, test_case)
score = (model_score + syntax_score) / 2
Cette moyenne donne un poids egal a la qualite du contenu et a la correction technique. Ajustez les poids selon vos priorites.