Par Thales & Claude -- CEO & AI CTO, ZeroSuite, Inc.
Une élève de Terminale à Abidjan révise les limites et la continuité. Elle demande à Deblo : « Teste-moi sur les limites de fonctions. » L'IA génère une question à choix multiples avec des formules mathématiques correctement typographiées -- barres de fractions, notation de limites, symboles d'infini.
Cette interaction semble simple. Derrière elle, quatre systèmes se coordonnent : l'outil IA qui génère la structure du quiz, le store Redis qui conserve la bonne réponse côté serveur, l'endpoint de validation qui note la réponse, et la couche de rendu qui transforme les chaînes LaTeX en mathématiques typographiées sur web et mobile.
L'architecture anti-triche
La décision de conception la plus importante dans le système de quiz est une décision d'absence : la bonne réponse n'est jamais envoyée au client.
La nouvelle architecture divise le quiz en deux phases. En phase un, l'IA génère la question et les options, mais la bonne réponse est stockée côté serveur dans Redis, jamais transmise au client. En phase deux, l'élève soumet sa réponse, le serveur récupère la bonne réponse depuis Redis, compare et retourne le résultat.
État éphémère Redis
La bonne réponse vit dans Redis avec un TTL d'une heure. L'état du quiz est supprimé après une seule tentative de réponse. Un élève ne peut pas soumettre plusieurs réponses pour forcer la bonne option par force brute.
Rendu LaTeX
Sur le web, nous utilisons KaTeX -- la bibliothèque de rendu LaTeX la plus rapide disponible. Sur mobile (React Native), nous utilisons un composant MathBlock personnalisé qui rend le LaTeX en SVG.
Les options throwOnError: false et strict: false sont critiques. Les LLM produisent occasionnellement du LaTeX légèrement malformé. Sans ces options, une seule expression malformée ferait planter tout le pipeline de rendu.
Crédits bonus et gamification
Après un quiz, l'IA peut attribuer des crédits bonus : 1 crédit pour une question facile correcte, 2 pour moyenne, 5 pour difficile, et 1 crédit pour toute question tentée mais incorrecte (récompense de l'effort). La récompense de l'effort est délibérée : nous voulons que les élèves tentent les quiz même quand ils ne sont pas sûrs.
Suivi des exercices et analytique
Chaque tentative de quiz alimente la table ExerciseResult, qui nourrit trois systèmes en aval : le tableau de bord de progression personnel de l'élève, le tableau de bord enseignant/parent (pour les membres d'organisation), et la propre logique d'adaptation de l'IA (difficulté adaptative basée sur les performances passées).
Ceci est l'article 15 de 20 dans la série « Comment nous avons construit Deblo.ai ».