Update app.py
Browse files
app.py
CHANGED
|
@@ -2,6 +2,7 @@ from flask import Flask, request, jsonify
|
|
| 2 |
from flask_cors import CORS
|
| 3 |
import requests
|
| 4 |
import os
|
|
|
|
| 5 |
|
| 6 |
app = Flask(__name__)
|
| 7 |
CORS(app)
|
|
@@ -14,7 +15,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 (Racines Carrées) !"
|
| 18 |
|
| 19 |
@app.route('/verify', methods=['POST'])
|
| 20 |
def verify_math():
|
|
@@ -28,7 +29,7 @@ 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 |
-
#
|
| 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)²). "
|
|
@@ -38,11 +39,12 @@ def verify_math():
|
|
| 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
|
| 42 |
-
"2.
|
| 43 |
-
"
|
| 44 |
-
" - Cas
|
| 45 |
-
" - Cas
|
|
|
|
| 46 |
)
|
| 47 |
|
| 48 |
user_prompt = f"Expression attendue (forme simplifiée) : {expected_latex}. Réponse de l'élève : {user_latex}."
|
|
|
|
| 2 |
from flask_cors import CORS
|
| 3 |
import requests
|
| 4 |
import os
|
| 5 |
+
import re
|
| 6 |
|
| 7 |
app = Flask(__name__)
|
| 8 |
CORS(app)
|
|
|
|
| 15 |
|
| 16 |
@app.route('/')
|
| 17 |
def home():
|
| 18 |
+
return "Serveur Albert Proxy en ligne (Racines Carrées v2) !"
|
| 19 |
|
| 20 |
@app.route('/verify', methods=['POST'])
|
| 21 |
def verify_math():
|
|
|
|
| 29 |
return jsonify({"error": "Clé API ALBERT_KEY manquante dans les Settings"}), 500
|
| 30 |
|
| 31 |
# 2. Préparation du prompt (Consignes strictes de formatage et de validation)
|
| 32 |
+
# CORRECTION : Utilisation explicite de \" pour les guillemets doubles dans les exemples JSON
|
| 33 |
system_prompt = (
|
| 34 |
"Tu es un professeur de mathématiques expert. "
|
| 35 |
"Ton rôle est de vérifier la simplification d'une expression irrationnelle (type (a√b - √c)²). "
|
|
|
|
| 39 |
" - 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)."
|
| 40 |
" - Refuse si la racine n'est pas réduite au maximum (ex: \\sqrt{12} au lieu de 2\\sqrt{3})."
|
| 41 |
"RÈGLES DE RÉPONSE :"
|
| 42 |
+
"1. Réponds UNIQUEMENT au format JSON valide (RFC 8259)."
|
| 43 |
+
"2. UTILISE EXCLUSIVEMENT DES DOUBLES GUILLEMETS \" POUR LES CLÉS ET LES VALEURS."
|
| 44 |
+
"3. LOGIQUE DU FEEDBACK (Pour le tri par l'interface) :"
|
| 45 |
+
" - Cas 1 (Juste et simplifié) -> {\"isCorrect\": true, \"feedback\": \"Bravo\"}"
|
| 46 |
+
" - 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)\"}"
|
| 47 |
+
" - Cas 3 (Faux) -> {\"isCorrect\": false, \"feedback\": \"C'est faux\"}"
|
| 48 |
)
|
| 49 |
|
| 50 |
user_prompt = f"Expression attendue (forme simplifiée) : {expected_latex}. Réponse de l'élève : {user_latex}."
|