Update app.py
Browse files
app.py
CHANGED
|
@@ -14,7 +14,7 @@ ALBERT_URL = "https://albert.api.etalab.gouv.fr/v1/chat/completions"
|
|
| 14 |
|
| 15 |
@app.route('/')
|
| 16 |
def home():
|
| 17 |
-
return "Serveur Albert Proxy en ligne !"
|
| 18 |
|
| 19 |
@app.route('/verify', methods=['POST'])
|
| 20 |
def verify_math():
|
|
@@ -28,29 +28,31 @@ def verify_math():
|
|
| 28 |
return jsonify({"error": "Clé API ALBERT_KEY manquante dans les Settings"}), 500
|
| 29 |
|
| 30 |
# 2. Préparation du prompt (Consignes strictes de formatage et de validation)
|
|
|
|
| 31 |
system_prompt = (
|
| 32 |
-
"Tu es un professeur de mathématiques expert
|
| 33 |
-
"Ton rôle est de vérifier la
|
| 34 |
"RÈGLES STRICTES DE VALIDATION :"
|
| 35 |
-
"1. La réponse doit être mathématiquement
|
| 36 |
-
"2.
|
| 37 |
-
" - Refuse systématiquement (isCorrect: false) si l'expression contient des parenthèses
|
| 38 |
-
" - Refuse si
|
| 39 |
-
" - Si c'est égal mais non développé, le feedback doit dire : 'C'est juste, mais tu dois développer et réduire l'expression'."
|
| 40 |
"RÈGLES DE RÉPONSE :"
|
| 41 |
"1. Réponds UNIQUEMENT au format JSON : {\"isCorrect\": boolean, \"feedback\": \"string\"}."
|
| 42 |
-
"2.
|
| 43 |
-
"
|
|
|
|
|
|
|
| 44 |
)
|
| 45 |
|
| 46 |
-
user_prompt = f"Expression attendue (forme
|
| 47 |
|
| 48 |
payload = {
|
| 49 |
"model": "Qwen/Qwen2.5-Coder-32B-Instruct-AWQ",
|
| 50 |
"temperature": 0,
|
| 51 |
"messages": [
|
| 52 |
-
{"role": "system", "content": system_prompt},
|
| 53 |
-
{"role": "user", "content": user_prompt}
|
| 54 |
]
|
| 55 |
}
|
| 56 |
|
|
|
|
| 14 |
|
| 15 |
@app.route('/')
|
| 16 |
def home():
|
| 17 |
+
return "Serveur Albert Proxy en ligne (Racines Carrées) !"
|
| 18 |
|
| 19 |
@app.route('/verify', methods=['POST'])
|
| 20 |
def verify_math():
|
|
|
|
| 28 |
return jsonify({"error": "Clé API ALBERT_KEY manquante dans les Settings"}), 500
|
| 29 |
|
| 30 |
# 2. Préparation du prompt (Consignes strictes de formatage et de validation)
|
| 31 |
+
# Adapté pour l'exercice de Simplification de Racines Carrées
|
| 32 |
system_prompt = (
|
| 33 |
+
"Tu es un professeur de mathématiques expert. "
|
| 34 |
+
"Ton rôle est de vérifier la simplification d'une expression irrationnelle (type (a√b - √c)²). "
|
| 35 |
"RÈGLES STRICTES DE VALIDATION :"
|
| 36 |
+
"1. ÉQUIVALENCE : La réponse de l'élève doit être mathématiquement égale à la réponse attendue."
|
| 37 |
+
"2. FORME : La réponse doit être sous la forme simplifiée 'a + b\\sqrt{c}' ou 'a - b\\sqrt{c}' ou un entier simple."
|
| 38 |
+
" - Refuse systématiquement (isCorrect: false) si l'expression contient des parenthèses ou des calculs non effectués (ex: (2\\sqrt{3})^2, 4*3)."
|
| 39 |
+
" - Refuse si la racine n'est pas réduite au maximum (ex: \\sqrt{12} au lieu de 2\\sqrt{3})."
|
|
|
|
| 40 |
"RÈGLES DE RÉPONSE :"
|
| 41 |
"1. Réponds UNIQUEMENT au format JSON : {\"isCorrect\": boolean, \"feedback\": \"string\"}."
|
| 42 |
+
"2. LOGIQUE DU FEEDBACK (Pour le tri par l'interface) :"
|
| 43 |
+
" - Cas 1 (Juste et simplifié) -> isCorrect: true, feedback: 'Bravo'."
|
| 44 |
+
" - Cas 2 (Mathématiquement juste MAIS forme non simplifiée/attendue) -> isCorrect: false, feedback: 'La réponse est juste mathématiquement mais la forme n'est pas celle demandée (simplification)'."
|
| 45 |
+
" - Cas 3 (Faux) -> isCorrect: false, feedback: 'C'est faux'."
|
| 46 |
)
|
| 47 |
|
| 48 |
+
user_prompt = f"Expression attendue (forme simplifiée) : {expected_latex}. Réponse de l'élève : {user_latex}."
|
| 49 |
|
| 50 |
payload = {
|
| 51 |
"model": "Qwen/Qwen2.5-Coder-32B-Instruct-AWQ",
|
| 52 |
"temperature": 0,
|
| 53 |
"messages": [
|
| 54 |
+
{ "role": "system", "content": system_prompt },
|
| 55 |
+
{ "role": "user", "content": user_prompt }
|
| 56 |
]
|
| 57 |
}
|
| 58 |
|