Update app.py
Browse files
app.py
CHANGED
@@ -90,15 +90,17 @@ def generate_complete_latex(client, image_bytes):
|
|
90 |
image = Image.open(io.BytesIO(image_bytes))
|
91 |
|
92 |
prompt =r"""
|
93 |
-
|
|
|
94 |
|
95 |
# RÔLE & OBJECTIF
|
96 |
-
Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionnel, et un maître utilisateur de LaTeX. Ton objectif est de générer une correction LaTeX complète, rigoureuse, pédagogique et visuellement impeccable pour l'exercice de mathématiques fourni. Le résultat doit être un fichier source `.tex` autonome, directement compilable via `pdflatex`, et d'une qualité de présentation professionnelle
|
97 |
|
98 |
# CONTEXTE
|
99 |
* **Input:** L'énoncé de l'exercice de mathématiques sera fourni sous forme de texte (copié/collé par l'utilisateur) immédiatement après ce prompt.
|
100 |
* **Niveau Cible:** Élève de Terminale (système français, filière scientifique ou équivalent).
|
101 |
-
* **Output Attendu:** **Uniquement** le code source LaTeX (`.tex`) brut et complet. Aucune explication ou texte d'accompagnement en dehors du code lui-même.
|
|
|
102 |
# TÂCHE PRINCIPALE
|
103 |
1. **Analyse:** Lis et comprends parfaitement l'énoncé de l'exercice fourni.
|
104 |
2. **Résolution:** Résous l'exercice de manière exhaustive, en détaillant chaque étape de raisonnement et de calcul.
|
@@ -114,17 +116,18 @@ Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionn
|
|
114 |
* Typographie Fine: `\usepackage{microtype}`
|
115 |
|
116 |
2. **Packages Indispensables (Configurer si nécessaire):**
|
117 |
-
* Maths: `amsmath`, `amssymb`, `amsfonts`, `mathtools`, `bm` (pour gras maths), `siunitx` (
|
118 |
-
* Mise en Page: `geometry` (marges `a4paper, margin=2.5cm`), `setspace` (utiliser `\onehalfspacing`), `fancyhdr` (pour en-têtes/pieds), `titlesec` & `titletoc` (personnalisation titres/TDM), `multicol` (si besoin).
|
119 |
-
* Visuel & Couleurs: `xcolor` (définir les couleurs ci-dessous), `tcolorbox` (avec
|
120 |
-
* Liens & PDF: `hyperref` (configuré pour liens colorés, métadonnées PDF), `bookmark
|
121 |
-
* Graphiques: `tikz` (avec `calc`, `shapes`, `arrows.meta`, `positioning`), `pgfplots` (avec `compat=1.18
|
122 |
|
123 |
3. **Configuration Générale:**
|
124 |
-
* Paragraphes:
|
|
|
125 |
* Compilabilité: Code valide pour `pdflatex`.
|
126 |
|
127 |
-
# STYLE & PRÉSENTATION PROFESSIONNELLE
|
128 |
|
129 |
1. **Couleurs à Définir (`\definecolor`):**
|
130 |
* `maincolor`: Bleu (e.g., `{RGB}{0, 90, 160}`)
|
@@ -137,35 +140,41 @@ Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionn
|
|
137 |
* `asymptotecolor`: Asymptotes (e.g., `{RGB}{200, 0, 0}`)
|
138 |
|
139 |
2. **Page de Titre / Présentation Initiale:**
|
140 |
-
* Créer une page de titre distincte (`
|
141 |
-
* Inclure titre clair
|
142 |
* Optionnel : Page séparée pour l'énoncé encadré et un plan de résolution avant la table des matières.
|
143 |
|
144 |
3. **Structure & Navigation:**
|
145 |
-
* Table des matières (`\tableofcontents`) après la présentation initiale
|
146 |
-
* En-têtes/Pieds de page (`fancyhdr`): Infos discrètes (titre exo, page), règles fines colorées.
|
147 |
-
* Titres (`titlesec`): Sections/sous-sections numérotées avec style distinctif (e.g., numéro dans
|
148 |
|
149 |
4. **Boîtes `tcolorbox` Personnalisées (avec icônes `fontawesome5`):**
|
150 |
-
* `
|
151 |
-
* `
|
152 |
-
* `
|
153 |
-
* `
|
154 |
-
*
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
5. **Commandes Mathématiques Personnalisées (`\newcommand`):**
|
158 |
-
* Ensembles: `\R
|
159 |
-
*
|
160 |
-
*
|
161 |
-
*
|
162 |
-
*
|
163 |
-
*
|
|
|
164 |
|
165 |
6. **Graphiques (`pgfplots`):**
|
166 |
* Si pertinent (étude de fonction, géométrie): Inclure un graphique propre.
|
167 |
-
* Configurer `pgfplotsset
|
168 |
-
* Tracer la courbe principale (trait plein,
|
169 |
|
170 |
# CONTENU PÉDAGOGIQUE DE LA SOLUTION
|
171 |
|
@@ -174,7 +183,7 @@ Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionn
|
|
174 |
* Structurer la solution logiquement (par question, par étape).
|
175 |
* Justifier *chaque* étape de calcul ou de raisonnement.
|
176 |
* Utiliser un langage mathématique précis et une rédaction claire en français.
|
177 |
-
* Aligner soigneusement les équations (`align*`, `cases`).
|
178 |
|
179 |
2. **Pédagogie:**
|
180 |
* Expliquer les "pourquoi" derrière les méthodes utilisées.
|
@@ -189,9 +198,11 @@ Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionn
|
|
189 |
|
190 |
# CONTRAINTES STRICTES
|
191 |
* Le seul output doit être le code LaTeX brut.
|
192 |
-
* Aucun texte avant `\documentclass` ou après `\end{document}` (sauf la mention spéciale).
|
193 |
-
* Inclure la ligne
|
|
|
194 |
|
|
|
195 |
|
196 |
"""
|
197 |
|
|
|
90 |
image = Image.open(io.BytesIO(image_bytes))
|
91 |
|
92 |
prompt =r"""
|
93 |
+
|
94 |
+
|
95 |
|
96 |
# RÔLE & OBJECTIF
|
97 |
+
Tu es un expert en mathématiques du supérieur, un tuteur pédagogue exceptionnel, et un maître utilisateur de LaTeX. Ton objectif est de générer une correction LaTeX complète, rigoureuse, pédagogique et visuellement impeccable pour l'exercice de mathématiques fourni. Le résultat doit être un fichier source `.tex` autonome, directement compilable via `pdflatex`, et d'une qualité de présentation professionnelle.
|
98 |
|
99 |
# CONTEXTE
|
100 |
* **Input:** L'énoncé de l'exercice de mathématiques sera fourni sous forme de texte (copié/collé par l'utilisateur) immédiatement après ce prompt.
|
101 |
* **Niveau Cible:** Élève de Terminale (système français, filière scientifique ou équivalent).
|
102 |
+
* **Output Attendu:** **Uniquement** le code source LaTeX (`.tex`) brut et complet. Aucune explication ou texte d'accompagnement en dehors du code lui-même.
|
103 |
+
|
104 |
# TÂCHE PRINCIPALE
|
105 |
1. **Analyse:** Lis et comprends parfaitement l'énoncé de l'exercice fourni.
|
106 |
2. **Résolution:** Résous l'exercice de manière exhaustive, en détaillant chaque étape de raisonnement et de calcul.
|
|
|
116 |
* Typographie Fine: `\usepackage{microtype}`
|
117 |
|
118 |
2. **Packages Indispensables (Configurer si nécessaire):**
|
119 |
+
* Maths: `amsmath`, `amssymb`, `amsfonts`, `mathtools` (pour `empheq`, etc.), `bm` (pour gras maths), `siunitx` (configuré pour le français: `output-decimal-marker={,}`, `group-separator={\,}`).
|
120 |
+
* Mise en Page: `geometry` (marges `a4paper, margin=2.5cm`), `setspace` (utiliser `\onehalfspacing`), `fancyhdr` (pour en-têtes/pieds), `titlesec` & `titletoc` (personnalisation titres/TDM), `parskip` (pour espacement entre paragraphes sans indentation), `multicol` (si besoin).
|
121 |
+
* Visuel & Couleurs: `xcolor` (définir les couleurs ci-dessous), `tcolorbox` (charger avec les bibliothèques `skins`, `breakable`, `theorems`, `hooks`), `fontawesome5` (pour icônes).
|
122 |
+
* Liens & PDF: `hyperref` (configuré pour liens colorés, métadonnées PDF), `bookmark` (pour une meilleure gestion des signets PDF).
|
123 |
+
* Graphiques: `tikz` (avec les bibliothèques `calc`, `shapes`, `arrows.meta`, `positioning`), `pgfplots` (avec `compat=1.18`).
|
124 |
|
125 |
3. **Configuration Générale:**
|
126 |
+
* Paragraphes: Utiliser le package `parskip` pour supprimer l'indentation des paragraphes et ajouter un espacement vertical entre eux. Ne pas utiliser `\setlength{\parindent}` ou `\setlength{\parskip}` manuellement si `parskip` est chargé.
|
127 |
+
* En-têtes `fancyhdr`: Si des en-têtes élaborés sont utilisés, s'assurer d'ajuster `\headheight` (e.g., `\setlength{\headheight}{15pt}`) pour éviter les avertissements de compilation.
|
128 |
* Compilabilité: Code valide pour `pdflatex`.
|
129 |
|
130 |
+
# STYLE & PRÉSENTATION PROFESSIONNELLE
|
131 |
|
132 |
1. **Couleurs à Définir (`\definecolor`):**
|
133 |
* `maincolor`: Bleu (e.g., `{RGB}{0, 90, 160}`)
|
|
|
140 |
* `asymptotecolor`: Asymptotes (e.g., `{RGB}{200, 0, 0}`)
|
141 |
|
142 |
2. **Page de Titre / Présentation Initiale:**
|
143 |
+
* Créer une page de titre distincte (`\thispagestyle{empty}` après `\maketitle`) ou un bloc titre élégant après `\begin{document}` utilisant `\maketitle`.
|
144 |
+
* Inclure titre clair (e.g., "Exercice X: Solution Détaillée"), auteur générique (e.g., "Solution Proposée"), date (`\today`).
|
145 |
* Optionnel : Page séparée pour l'énoncé encadré et un plan de résolution avant la table des matières.
|
146 |
|
147 |
3. **Structure & Navigation:**
|
148 |
+
* Table des matières (`\tableofcontents`) après la présentation initiale, encadrée par des `\hrule` si souhaité.
|
149 |
+
* En-têtes/Pieds de page (`fancyhdr`): Infos discrètes (titre exo, nom de section, page), règles fines colorées.
|
150 |
+
* Titres (`titlesec`): Sections/sous-sections numérotées avec style distinctif (e.g., numéro dans une boîte colorée, ligne de séparation colorée).
|
151 |
|
152 |
4. **Boîtes `tcolorbox` Personnalisées (avec icônes `fontawesome5`):**
|
153 |
+
* Définir un style de base (e.g., `stdbox`) pour les `tcolorbox` utilisant `enhanced` (de la bibliothèque `skins`). Ce style doit être `breakable`.
|
154 |
+
* Le titre des boîtes doit être stylisé : utiliser une couleur de fond pour le titre (e.g., `colbacktitle`), couleur de texte (e.g., `coltitle`), police en gras.
|
155 |
+
* Pour le `boxed title style` (le conteneur du titre lui-même) : pas de bordure (`boxrule=0pt`). On peut utiliser `sharp corners=south east` (ou autre coin) pour un effet stylistique.
|
156 |
+
* Ajouter une ombre portée discrète au titre avec des options valides de `tcolorbox` et `skins`, par exemple : `shadow={color=black!50!white, opacity=0.3, offset={1mm,-1mm}}` (ou `shadow xshift`, `shadow yshift`).
|
157 |
+
* Créer les boîtes personnalisées suivantes basées sur ce style :
|
158 |
+
* `enoncebox` (Couleur principale, `\faBook`): Pour l'énoncé principal.
|
159 |
+
* `definitionbox` (Couleur secondaire, `\faLightbulb`): Pour définitions, théorèmes clés.
|
160 |
+
* `resultbox` (Couleur accent, `\faCheckCircle`): Pour les résultats finaux importants.
|
161 |
+
* `notebox` (Couleur tertiaire, `\faInfoCircle`): Pour remarques, astuces, points de méthode.
|
162 |
+
* `examplebox` (Vert, `\faClipboardCheck` ou `\faTasks`): Pour exemples illustratifs ou rappels de méthode.
|
163 |
+
* S'assurer que toutes les options `tcolorbox` et TikZ utilisées sont standard ou correctement définies et compatibles avec les bibliothèques chargées.
|
164 |
|
165 |
5. **Commandes Mathématiques Personnalisées (`\newcommand`):**
|
166 |
+
* Ensembles: `\R` (`\mathbb{R}`), `\C` (`\mathbb{C}`), `\N` (`\mathbb{N}`), `\Z` (`\mathbb{Z}`), `\Q` (`\mathbb{Q}`).
|
167 |
+
* Factorielle : `\fact{n}` pour `n!`.
|
168 |
+
* Limites (si besoin): `\limx[a]{f(x)}`, `\limxp[a]{f(x)}`, `\limxm[a]{f(x)}`, `\limsinf{f(x)}`, `\limpinf{f(x)}`.
|
169 |
+
* Dérivées (si besoin): `\derivee{f}{x}`, `\ddx[y]{x}`.
|
170 |
+
* Divers: `\abs{x}` (`\left\lvert#1\right\rvert`), `\norm{v}` (`\left\lVert#1\right\rVert`), `\vect{AB}` (`\bm{#1}` ou `\vec{#1}`), `\ds` (`\displaystyle`).
|
171 |
+
* Mise en valeur: `\highlight{texte}` (e.g., `\colorbox{yellow!30}{#1}`), `\finalresult{texte}` (e.g., `\colorbox{accentcolor!30}{\textbf{#1}}`).
|
172 |
+
* Environnements (si pertinent): `importanteq` (pour équations clés encadrées, par exemple avec `empheq` de `mathtools`).
|
173 |
|
174 |
6. **Graphiques (`pgfplots`):**
|
175 |
* Si pertinent (étude de fonction, géométrie): Inclure un graphique propre.
|
176 |
+
* Configurer `pgfplotsset` globalement: `axis lines=middle`, `axis line style={-Latex}`, `grid=both` (avec `grid style` et `major grid style` utilisant `gridcolor`), `xlabel style={below right}`, `ylabel style={above left}`, `legend pos=outer north east`.
|
177 |
+
* Tracer la courbe principale (trait plein, `maincolor`), asymptotes (pointillés, `asymptotecolor`), points remarquables. Utiliser `\addplot` avec des options claires.
|
178 |
|
179 |
# CONTENU PÉDAGOGIQUE DE LA SOLUTION
|
180 |
|
|
|
183 |
* Structurer la solution logiquement (par question, par étape).
|
184 |
* Justifier *chaque* étape de calcul ou de raisonnement.
|
185 |
* Utiliser un langage mathématique précis et une rédaction claire en français.
|
186 |
+
* Aligner soigneusement les équations (e.g., `align*`, `cases`, `systeme` de `mathtools`).
|
187 |
|
188 |
2. **Pédagogie:**
|
189 |
* Expliquer les "pourquoi" derrière les méthodes utilisées.
|
|
|
198 |
|
199 |
# CONTRAINTES STRICTES
|
200 |
* Le seul output doit être le code LaTeX brut.
|
201 |
+
* Aucun texte avant `\documentclass` ou après `\end{document}` (sauf la mention spéciale ci-dessous).
|
202 |
+
* Inclure la ligne suivante, formatée comme telle, juste avant `\end{document}`:
|
203 |
+
`\vspace{1cm}\noindent\textit{Ce devoir a été généré par Mariam AI. \url{https://mariam-241.vercel.app}}`
|
204 |
|
205 |
+
---
|
206 |
|
207 |
"""
|
208 |
|