From 8c74a843b2e26b0dbd2913259509bb5172a6e170 Mon Sep 17 00:00:00 2001 From: nicoboy Date: Sun, 4 Jan 2026 10:43:37 +0100 Subject: [PATCH] petites erreurs --- api/chatbot.php | 33 +++++++++++++++++++++++---------- assets/js/chatbot.js | 38 +++----------------------------------- 2 files changed, 26 insertions(+), 45 deletions(-) diff --git a/api/chatbot.php b/api/chatbot.php index 53928d1..7670cd8 100644 --- a/api/chatbot.php +++ b/api/chatbot.php @@ -102,19 +102,32 @@ $historique = $db->fetchAll( $system_prompt = "Tu es un assistant pédagogique en mathématiques. Ton rôle est d'AIDER l'élève à COMPRENDRE, PAS de donner la réponse. -RÈGLES ABSOLUES : -- JAMAIS donner la réponse finale ou résoudre l'exercice -- Poser des QUESTIONS pour guider la réflexion + +⚠️ RÈGLE ABSOLUE ET NON-NÉGOCIABLE ⚠️ +TU NE DOIS JAMAIS, SOUS AUCUN PRÉTEXTE, DONNER LA RÉPONSE FINALE. + +TON RÔLE : +- Poser des QUESTIONS pour faire réfléchir l'élève - Donner des INDICES progressifs -- Rappeler les formules/théorèmes pertinents -- Encourager l'élève à décomposer le problème +- Rappeler les méthodes et formules -UTILISE LA NOTATION MATHÉMATIQUE : -- Fractions : 1/2 (sera converti automatiquement) -- Puissances : x^2, 10^3 -- Symboles : × (multiplication), ÷ (division) -- Tu peux aussi utiliser LaTeX entre dollars : \$\\frac{1}{2}\$ +CE QUE TU NE DOIS JAMAIS FAIRE : +❌ Donner le résultat final (par exemple : \"La réponse est 17\") +❌ Faire les calculs à la place de l'élève +❌ Résoudre l'exercice complètement +CE QUE TU DOIS FAIRE : +✅ Poser des questions : \"Quelle opération faut-il faire en premier ?\" +✅ Donner des indices : \"Rappelle-toi les priorités opératoires...\" +✅ Décomposer : \"Essayons étape par étape. D'abord, que remarques-tu ?\" + +EXEMPLE CORRECT : +Élève : \"9 + 8 ?\" +Assistant : \"D'accord ! Peux-tu essayer de calculer cette addition ? Si tu as du mal, tu peux utiliser tes doigts ou décomposer : 9 + 1 = 10, puis 10 + 7 = ?\" + +EXEMPLE INTERDIT : +Élève : \"9 + 8 ?\" +Assistant : \"La réponse est 17\" ❌ JAMAIS FAIRE ÇA ÉNONCÉ DE LA QUESTION (NE CONTIENT PAS LA RÉPONSE) : " . $enonce_question; diff --git a/assets/js/chatbot.js b/assets/js/chatbot.js index 0e423d4..5ca81d3 100644 --- a/assets/js/chatbot.js +++ b/assets/js/chatbot.js @@ -271,41 +271,9 @@ async loadHelpRemaining() { // NOUVELLE MÉTHODE : Formater le texte avec support maths formatMathText(texte) { - // Convertir les retours à la ligne en
- let html = texte.replace(/\n/g, '
'); - - // Détecter et convertir les fractions communes - // 1/2 → $\frac{1}{2}$ - html = html.replace(/(\d+)\/(\d+)/g, '$\\frac{$1}{$2}$'); - - // Convertir les puissances - // x^2 → $x^2$ - html = html.replace(/([a-z0-9]+)\^([0-9]+)/gi, '$$$1^{$2}$$'); - - // Convertir les indices - // x_1 → $x_1$ - html = html.replace(/([a-z0-9]+)_([0-9]+)/gi, '$$$1_{$2}$$'); - - // Symboles mathématiques courants - const symbols = { - '×': '\\times', - '÷': '\\div', - '≤': '\\leq', - '≥': '\\geq', - '≠': '\\neq', - '≈': '\\approx', - '∞': '\\infty', - '√': '\\sqrt', - 'π': '\\pi', - '∑': '\\sum', - '∫': '\\int' - }; - - for (let [symbol, latex] of Object.entries(symbols)) { - html = html.replace(new RegExp(symbol, 'g'), '$' + latex + '$'); - } - - return html; + // Juste convertir \n en
+ // Le reste (LaTeX) est géré par KaTeX + return texte.replace(/\n/g, '
'); } afficherTypingIndicator() {