A.S.I.I.S — Plateforme d'apprentissage par IA

PythonFastAPIOpenAI APIREST API· 3 min de lecture

Une plateforme d'e-learning construite autour d'un assistant intelligent : les apprenants posent des questions contextuelles et obtiennent des réponses ancrées, reçoivent des recommandations de contenu personnalisées, et voient leur progression suivie automatiquement au lieu de naviguer dans un catalogue de cours statique.

Le problème et les contraintes

Un chat LLM générique greffé sur une plateforme de cours a tendance à répondre à des questions déconnectées de ce sur quoi l'apprenant travaille réellement, et n'offre aucun moyen de savoir si l'interaction l'a réellement aidé à progresser. L'objectif était un assistant contextuel au contenu et à la progression actuels de l'apprenant, pas un widget de chat générique.

Approche

  • Backend FastAPI exposant une API REST consommée par le frontend de la plateforme, gardant la logique de l'assistant IA comme un service distinct plutôt que mêlée au rendu des pages.
  • Intégration de l'API OpenAI pour la logique de questions-réponses et de recommandation, avec des prompts limités au contexte du cours actuel de l'apprenant plutôt qu'un chat ouvert.
  • Le suivi de progression modélisé comme une préoccupation à part entière, alimentant en retour ce que la logique de recommandation considère comme le prochain contenu pertinent.
RESTpromptplatform frontendFastAPI serviceassistant keptbehind RESTcourse contextscopes every promptprogress trackingfeeds what comes nextOpenAI APIQ&A +recommendations

Description complète :

  1. platform frontend → FastAPI service — assistant kept — behind REST (REST)
  2. FastAPI service — assistant kept — behind REST → course context — scopes every prompt
  3. FastAPI service — assistant kept — behind REST → progress tracking — feeds what comes next
  4. course context — scopes every prompt → OpenAI API — Q&A + — recommendations (prompt)
  5. progress tracking — feeds what comes next → OpenAI API — Q&A + — recommendations
L'assistant maintenu derrière une frontière REST plutôt que mêlé au rendu des pages, et les deux éléments qui cadrent chaque prompt : le cours en cours de l'apprenant et sa progression suivie. Ces deux entrées sont toute la différence avec un widget de chat.

Compromis faits

Decision

Un assistant limité et conscient du contexte plutôt qu'un chatbot généraliste : contraindre l'assistant au contenu actuel de l'apprenant a rendu les réponses plus pertinentes, au prix de davantage de travail pour intégrer le contexte dans chaque prompt plutôt que de livrer un widget de chat prêt à l'emploi.

Decision

Une frontière API REST entre le backend et la logique IA : a gardé l'assistant remplaçable/testable indépendamment du frontend, plutôt que de coupler directement les appels au LLM dans le code d'interface.

Résultats

Une plateforme fonctionnelle où les réponses et recommandations de l'assistant sont liées à ce que l'apprenant étudie réellement, avec une progression suivie automatiquement plutôt qu'auto-déclarée.

Ce que je referais différemment

Ajouter une évaluation automatisée de la qualité des réponses (même un petit jeu de test étiqueté) plutôt que de s'appuyer sur des vérifications manuelles ponctuelles — pour un produit éducatif, des réponses silencieusement fausses sont un vrai risque qui mérite d'être testé explicitement.