Back to deblo
deblo

Quiz interactifs avec LaTeX : tester les élèves dans un chat

Quiz anti-triche en deux phases : l'IA envoie les questions sans les réponses, Redis stocke la bonne option et le serveur valide. Avec rendu mathématique LaTeX complet.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min deblo
EN/ FR/ ES
debloquizlatexkatexredisanti-tricheéducation

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 ».

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Ça marche, et ce n'est pas fini

Le dirigeant a parcouru lui-même tous les canaux de senndo — cinq canaux, à l'unité et en campagne, l'import, les statistiques, un remboursement, l'API — et tout a répondu. Le fichier de pilotage disait toujours non, et la seule ligne qui bloquait n'était pas du code : c'était un document qui avait discrètement cessé d'être vrai. Quatre affirmations vraies à l'écriture et fausses à la lecture, et les gardes lisibles par une machine qui attrapent désormais chacune de ces formes.

13 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant

Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

Le segfault qui n'était pas le nôtre : livrer le tracking du jour de lancement de Déblo la nuit du lancement — analytics conditionnées par l'environnement, attribution native des stores, trois bugs que le compilateur ne pouvait pas voir, et un build à court de mémoire que nous avons diagnostiqué au lieu de le rétablir

Le 1er juillet 2026 — jour de lancement — le risque n'a jamais été le texte. C'était les campagnes payantes qui partaient à l'aveugle. Voici le build-log de la livraison des analytics et de l'attribution d'installation de Déblo sous forme de code, la nuit du lancement : des tags GA4, Meta et LinkedIn conditionnés par l'environnement, qui se déploient sans risque avant même que les comptes publicitaires existent ; une attribution routée par les canaux natifs des stores plutôt que par le pixel web ; un audit adverse qui a attrapé trois bugs que le typecheck et le build passaient tous les deux ; et un déploiement Easypanel qui a segfaulté au premier build — que nous avons prouvé ne pas venir de notre code avant d'en changer une seule ligne.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26