Ce projet a pour objectif de créer un système capable de générer automatiquement un titre et une description d'une User Story, à partir d’un texte d’entrée.
Il repose sur un modèle entraîné (fine tuning) localement, puis utilisés via une API backend et une simple interface web.
L'ensemble du projet est pensé pour fonctionner en local, via Docker, sous la forme d’un monorepo contenant :
- le backend (API + modèle entraînement)
- le frontend (client web)
Le dépôt contient deux applications :
/frontend → Interface web
/backend → API + Entraînement + Utilisation des modèles
Le backend regroupe :
- 📚 l’entraînement des modèles
- 🧠 l’inférence (utilisation des modèles entraînés)
- 🔌 l’API permettant l’accès au modèle
- 🐳 la configuration Docker pour une utilisation locale
Le frontend est indépendant, mais peut être lancé dans le même monorepo.
Le modèle devra être capable de :
-
Analyser une entrée utilisateur
-
Générer un titre de User Story (ex : "En tant que client, je peux…")
-
Générer une description claire et structurée, par exemple :
- Contexte
- Besoin
- Critères d’acceptation
Le projet pourra inclure :
- du pré-processing
- de la vectorisation
- un modèle complexe NLP (ex : GPT, Bert, etc.)
L’objectif n’est pas de reproduire des modèles géants, mais de construire une pipeline fonctionnelle et reproductible.
- un module d’entraînement
backend/app/train/ - une API FastAPI
backend/app/api/ - un frontend web (Python - streamlit)
frontend/ - des conteneurs Docker
docker-compose.ymlbackend/Dockerfilefrontend/Dockerfile
- fonctionne exclusivement en local
- n’est pas déployée sur un serveur
- utilise Docker pour simplifier l'exécution
docker-compose up --buildLancement typique :
- API disponible sur :
http://localhost:4242 - Frontend disponible sur :
http://localhost:4241
- 📄 Import déjà disponible dans
backend/app/data/rawet préparation des données - 🏋️ Entraînement du modèle
- 💾 Enregistrement du modèle (joblib)
- 🔌 API pour servir le modèle
- 🖥️ Frontend pour utilisation via une interface simple
- Déterminer l’outil Git (GitHub / Bitbucket)
- Choisir le type de modèle (classique NLP ou petit transformer local)
- Construire le pipeline d’entraînement
- Créer l’API backend
- Développer l’interface frontend
- Créer les images Docker
- Rédiger la documentation technique