Agents Géométrie
Prototype ANSU
Présentation Exemples
Phase de test
6 agents en ligne
DeepSeek Flash · Mistral Medium
Ports 8765–8773, 3001
nginx b.ansu-demo.net
Prototype ANSU · Phase de test · DRANE PACA / DNE

Six assistants IA pour les mathématiques

Du Brevet au Bac — questions libres avec figures précises, démonstrations rédigées, entraînement QCM, apprentissage par l'enseignement, ou exercices interactifs sur les équations de droites avec GeoGebra. Choisissez le mode qui vous convient.

01

AnSu Géométrie — figures statiques matplotlib

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ FastAPI │────▶│ DeepSeek │ │ HTML/JS │◀────│ :8765 │◀────│ Flash API │ │ KaTeX │ │ │ │ │ └──────────────┘ │ matplotlib │ └──────────────┘ │ subprocess │ └──────────────┘

Pipeline

  • L'utilisateur envoie une question de géométrie
  • Le backend appelle DeepSeek Flash avec un prompt système (professeur de maths en français)
  • Le LLM génère une explication textuelle + un bloc ```python
  • Le backend extrait le code Python, l'exécute avec matplotlib
  • La figure PNG (150 DPI, fond blanc, axes égaux, grille légère) est sauvegardée dans static/
  • Le frontend affiche le texte (KaTeX pour les formules) et l'image
Spécifications
  • Approche : code Python exécuté côté serveur
  • Figures : PNG (matplotlib, 150 DPI)
  • Modèle : DeepSeek Flash (deepseek-chat)
  • Interactivité : image statique · ~5-15s

Fichiers — AnSu Géométrie (:8765)

/var/www/ansu-geometrie/geometribot/app.pyBackend FastAPI (routes + HTML inline)
/var/www/ansu-geometrie/geometribot/static/PNG générées (geo_<uuid>.png)
geometry-bot.serviceService systemd
nginx → /geo → :8765Reverse proxy
02

Geo2 — figures interactives SVG / Desmos / JSXGraph

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ FastAPI │────▶│ Mistral │ │ HTML/JS │◀────│ :8766 │◀────│ Medium API │ │ KaTeX │ │ │ │ │ │ Desmos CDN │ │ parse_figure │ └──────────────┘ │ JSXGraph CDN│ │ 3 renderers │ └──────────────┘ └──────────────┘

Pipeline

  • Le backend appelle Mistral Medium avec un prompt système spécialisé
  • Le LLM génère une explication + un bloc balisé <svg>, <desmos> ou <jsxgraph>
  • Le backend parse le bloc, le frontend rend la figure dans le navigateur
  • SVG : rendu vectoriel statique (polygones, cercles, angles)
  • Desmos : graphe interactif embed (courbes de fonctions, lieux)
  • JSXGraph : constructions dynamiques avec points mobiles
Spécifications
  • Approche : balises structurées parsées côté client
  • Figures : SVG · Desmos · JSXGraph (interactif)
  • Modèle : Mistral Medium (mistral-medium-latest)
  • Interactivité : oui — zoom, point mobile, curseur · ~5-15s

Fichiers — Geo2 (:8766)

/var/www/ansu-geometrie/geo2/app.pyBackend FastAPI (routes + 3 renderers)
/var/www/ansu-geometrie/geo2/static/Frontend HTML/CSS/JS + templates JSXGraph
geo2-bot.serviceService systemd
nginx → /geo2 → :8766Reverse proxy (via b.ansu-demo.net)
Mistral MediumAPI externe (via api.mistral.ai)
03

DNB Géo — entraîneur QCM Brevet

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ FastAPI │────▶│ Mistral │ │ QCM + │◀────│ :8767 │◀────│ Medium API │ │ justific. │ │ │ │ │ │ KaTeX │ │ augmentation │ └──────────────┘ │ matplotlib │ │ + rotation │ └──────────────┘ │ + correction │ │ matplotlib │ └──────────────┘

Pipeline

  • Génération QCM — Mistral génère une question avec 3 choix (A/B/C) dont 2 leurres basés sur les erreurs classiques de 3e
  • Réponse + justification — l'élève choisit une réponse ET rédige sa justification
  • Correction — ✅/❌, explication de l'erreur classique, rappel de méthode, et figure matplotlib
  • Rotation 12 catégories — le backend suit automatiquement les catégories du cycle 4
  • Bouton Régénérer — chaque réponse peut être regénérée avec restauration de l'état
Spécifications
  • Type : entraîneur QCM Brevet (3 étapes)
  • Figures : matplotlib PNG (correction uniquement)
  • Catégories : 12 thèmes cycle 4, rotation automatique
  • Modèle : Mistral Medium · ~5-15s

Fichiers — DNB Géo (:8767)

/var/www/ansu-geometrie/dnb-geo/app.pyBackend FastAPI (routes + rotation + matplotlib)
/var/www/ansu-geometrie/dnb-geo/static/Frontend HTML/CSS/JS interactif QCM
dnb-geo-bot.serviceService systemd
nginx → /dnb-geo → :8767Reverse proxy (via b.ansu-demo.net)
04

Agent Naïf — apprends en enseignant

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ FastAPI │────▶│ Mistral │ │ HTML/JS │◀────│ :8768 │◀────│ Medium API │ │ KaTeX │ │ │ │ │ │ │ │ matplotlib │ │ "naïf" 🤖 │ │ │ │ subprocess │ └──────────────┘ └──────────────┘ └──────────────┘

Pipeline

  • L'élève est le professeur — il donne des INSTRUCTIONS pour construire une figure
  • Le backend appelle Mistral Medium avec un prompt "naïf" : l'agent suit les instructions À LA LETTRE
  • Le LLM génère un bloc ```python matplotlib correspondant exactement aux instructions
  • Le backend exécute le code, sauvegarde la figure PNG
  • L'agent explique ce qu'il a compris et demande confirmation
  • Si la figure est incomplète → l'élève reformule (apprentissage par l'enseignement)
Pédagogie — Learning by Teaching
  • Principe : apprendre en enseignant
  • Rôle élève : donne des instructions, l'agent exécute naïvement
  • Figures : PNG (matplotlib, 150 DPI)
  • Modèle : Mistral Medium · ~5-15s

Fichiers — Agent Naïf (:8768)

/var/www/ansu-geometrie/geo3/app.pyBackend FastAPI (routes + HTML inline)
/var/www/ansu-geometrie/geo3/static/PNG générées (geo_naif_<uuid>.png)
geo3-bot.serviceService systemd
nginx → /geo3 → :8768Reverse proxy (via b.ansu-demo.net)
05

Agent Naïf 2 — complète la figure inachevée

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ FastAPI │────▶│ Mistral │ │ HTML/JS │◀────│ :8773 │◀────│ Medium API │ │ KaTeX │ │ │ │ │ │ │ │ matplotlib │ │ "naïf" + 🎯 │ │ │ │ subprocess │ │ pensée secrète│ └──────────────┘ └──────────────┘ └──────────────┘

Pipeline

  • Mécanique inversée de l'Agent Naïf — c'est l'AGENT qui propose une figure inachevée
  • Plusieurs objets candidats étiquetés (points A/B/C, droites d1/d2, cercles C1…), un seul correct, les autres sont des leurres
  • L'élève répond en désignant une étiquette (« la droite d2 ») — pas de longue phrase
  • La bonne réponse reste cachée dans une <pensee_secrete> (jamais montrée)
  • Progression adaptative : relier un triangle → angle droit → carré → rectangle → tangente, carré inscrit dans un cercle…
  • Mauvais choix → l'agent dessine littéralement l'erreur pour la révéler
Pédagogie — Compléter par désignation
  • Principe : le schéma de départ étaye une consigne simple (désigner, pas reformuler)
  • Rôle élève : choisit le bon objet parmi des leurres plausibles
  • Figures : PNG (matplotlib, 150 DPI), points + objets persistés (anti-dérive)
  • Modèle : Mistral Medium · ~5-15s

Fichiers — Agent Naïf 2 (:8773)

/var/www/ansu-geometrie/geo4/app.pyBackend FastAPI (socle ansu_core)
/var/www/ansu-geometrie/geo4/prompt.txtPrompt « défi par désignation »
/var/www/ansu-geometrie/geo4/static/PNG générées (geo_naif2_<uuid>.png)
geo4-bot.serviceService systemd
nginx → /geo4 → :8773Reverse proxy (via b.ansu-demo.net)
06

Mimo — exercices interactifs sur les équations de droites

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Frontend │────▶│ Express │────▶│ LLM │ │ React 19 │◀────│ :3001 │◀────│ génération │ │ GeoGebra │ │ API │ │ exercices │ │ Tailwind │ │ (tsx) │ │ adaptatifs │ └──────────────┘ └──────────────┘ └──────────────┘

Pipeline

  • Exercices QCM sur les droites affines y = ax + b (programme Seconde)
  • Trois graphiques GeoGebra par exercice : la droite correcte + deux leurres basés sur des erreurs classiques (confusion signe de la pente, inversion ordonnée à l'origine, échange pente/ordonnée)
  • Feedback adaptatif en deux niveaux : indice au 1er essai erroné, correction complète au 2e
  • Génération déterministe des exercices (seed RNG) pour reproductibilité
  • Stack React 19 + TypeScript + Vite + Tailwind CSS, backend Express
Pédagogie — misconceptions-driven
  • Principe : chaque distracteur correspond à une erreur de conception identifiée
  • Niveau : Seconde (droites affines, coefficient directeur, ordonnée à l'origine)
  • Figures : GeoGebra interactif dans le navigateur
  • Modèle : LLM pour la génération d'exercices · ~3-8s

Fichiers — Mimo (:3001)

/var/www/ansu-geometrie/mimo/src/Code source React + TypeScript (Vite)
/var/www/ansu-geometrie/mimo/server/Serveur Express (génération IA)
/var/www/ansu-geometrie/mimo/dist/Build statique servi par nginx
mimo-server.serviceService systemd
nginx → /mimo → dist/ + /mimo/api → :3001Reverse proxy + alias