mini_projet.md
PROJET : GPT Programmeur
But du projet
Réaliser une application Web, qui permet de demander à ChatGPT de créer une fonction avec des tests unitaires dans un langage de programmation donné.
Dates limites
- point d'étape : mardi 14 février matin
- dépôt final : dimanche 19 février minuit
Moyens
Langage de développement : au choix Framework Web : au choix Dépôt GIT : https://gitlab.univ-lorraine.fr
Langages cibles
Groupe 1 : Python / Prolog
Groupe 2 : Java / Eiffel
Groupe 3 : PHP / Haskell
Description de la page WEB
Un exemple de formulaire Web est fourni dans le ficheir codeur_gpt.html
Le formulaire doit contenir les élements suivants :
- une zone de description de la fonction, par exemple :
- « Résoudre une équation du second degré. »
- « Trier une liste de mots »
- « Tester si un mot est un palindrome. »
- « Calculer le nombre d'occurences de chaque mot dans un texte. »
- une zone de saisie du nombre de tests unitaires
- un bouton pour lancer la création du programme
- un popup menu pour choisir le langage de programmation entre les deux définis pour le groupe
- une zone éditable d’affichage du programme
- une zone éditable avec la liste des tests
- un bouton pour relancer le passage des tests après modification du programme ou des tests
Votre logiciel de création de fonction devra pouvoir être testé sans accès à ChatGPT, ni Internet. Vous utiliserez donc un mock (https://en.wikipedia.org/wiki/Mock_object) avec des réponses prédéfinies pour simuler le comportement de l'accès à ChatGPT.
On mettra en place des scénarios de tests fonctionnels avec le framework Selenium.
La fonction créée devra passer et valider les tests générés par ChatGPT. Comme dans le programme Mira (voir ci-dessous), il peut être nécessaire de demander à ChatGPT de refaire le programme pour qu'il passe les tests. On limitera le nombre d'itérations à 10, et on mettra un message d'erreur si la fonction ne peut pas être validée.
Itérations de développement
- Un seul langage de programmation cible, pas de validations des tests, pas de modification du programme et des tests, pas d'itérations de refactoring auprès de ChatGPT.
- Ajout de la validation des tests sans refactoring, vous mettrez un message pour indiquer si certains tests ne passent pas.
- Ajout de la modification du programme et des tests par l'utilisateur.
- Ajout des itérations de refactoring auprès de ChatGPT.
- Ajout du second langage de programmation.
Références
Ces sources devraient être utiles :
- Mira, un programme en Rust qui crée des programmes Rust via GPT-3 : https://gitlab.com/corpsmoderne/mira
- API de ChatGPT :