FORPY Application d'apprentissage Python avec l'IA
FORPY est une application open source que j'ai développée pour proposer une nouvelle manière d'apprendre Python avec l'intelligence artificielle.
- Plutôt que de proposer une liste fixe d'exercices, le LLM va générer en volume des exercices adaptés au niveau de l'utilisateur
- Puis lui fournir immédiatement la correction, l'explication du code et un accompagnement pas à pas ?
Le but est de s'exercer à python par la répétition avec un volume conséquent de petits exercices.
J'ai donc conçu FORPY comme une application locale, sans serveur, multi-plateforme et multi-LLM, dans laquelle l'utilisateur conserve la maîtrise de ses données et de sa consommation d'API. Le projet est open source et fonctionne avec les principaux fournisseurs de modèles : Anthropic, OpenAI et Google.
La conception du système de génération IA
Le cœur de FORPY repose sur un système de prompts spécialisé par sous-niveau.
Plutôt que d'utiliser un unique prompt générique du type « génère-moi un exercice Python », chaque partie du parcours possède ses propres instructions pédagogiques.
Le projet contient ainsi un ensemble de prompts dédiés aux différents niveaux et modes d'apprentissage.
L'objectif est de contraindre suffisamment le modèle pour obtenir des exercices cohérents avec le niveau choisi, tout en conservant suffisamment de liberté pour générer des situations différentes.
Faire du local un choix architectural
La confidentialité n'est pas simplement une conséquence du fonctionnement de l'application : elle fait partie de sa conception.
FORPY ne possède pas de backend chargé de centraliser les utilisateurs ou leurs clés API. La clé est conservée localement sur l'appareil et les requêtes sont envoyées directement au fournisseur d'IA choisi.
Ce choix permet également de supprimer :
- la création de compte ;
- l'abonnement ;
- un backend à maintenir ;
- une base de données utilisateurs ;
- une infrastructure serveur pour faire fonctionner l'application.
L'utilisateur garde ainsi le contrôle de ses données et de ses dépenses API.
Construire une vraie application multi-plateforme
FORPY n'est pas conçu comme un simple prototype exécuté depuis un terminal.
L'application est développée en Python avec Flet, puis packagée pour plusieurs environnements.
Le projet permet actuellement de produire :
- Windows .exe
- Linux .AppImage
- Android .apk
Le packaging s'appuie sur Flet et Flutter.
Cela m'a obligé à prendre en compte des problématiques différentes de celles d'un simple script Python : gestion de l'état, ressources embarquées, configuration locale, interface responsive et distribution.
Structurer le code pour pouvoir faire évoluer FORPY
L'architecture du projet sépare clairement les responsabilités :
UI
Les différents écrans de l'application.
Services
Les appels IA et la construction des prompts.
Prompts
Le contenu pédagogique spécifique à chaque niveau.
Utils
État de session, thème, traductions et configuration.
Assets
Logos, icônes et supports visuels.
Tests
Tests automatisés du projet.
Cette organisation permet notamment d'ajouter de nouveaux niveaux ou de nouveaux fournisseurs IA sans transformer le projet en bloc monolithique.
Le Futur ? Préparer le projet à dépasser Python
Un autre choix important a été de ne pas enfermer l'architecture dans le seul cas d'usage actuel.
L'objectif est donc de pouvoir progressivement étendre le concept à d'autres spécialisations, par exemple Python pour le Machine Learning ou Python pour l'IA, sans remettre en cause les fondations du produit.
Résultat
FORPY est un projet particulièrement représentatif de ma manière de travailler avec l'IA.
Je ne cherche pas uniquement à intégrer un modèle de langage dans une application.
Je cherche à construire autour du modèle une architecture qui lui donne un rôle précis, tout en conservant la maîtrise du produit, des données et de l'expérience utilisateur.
L'IA devient ici un composant du système, pas le système lui-même.