Chargement de l'article en cours ... Cet article présente un exemple de potentielle utilisation d’une intelligence artificielle dans le cadre du travail d’un enseignant. L’objectif est de générer des appréciations de bulletin en utilisant l’API OpenAI après un traitement rapide, avec Python, des résultats des élèves (exportés au format CSV depuis Pronote par exemple). L’ensemble des fichiers du programme (scripts, données et résultats) sont disponibles au téléchargement en fin d’article. Important, à lire ! Ce programme est proposé à titre de démonstration et ne remplace en rien le travail de rédaction d’appréciation du professeur. En effet, la rédaction d’une appréciation de bulletin ne se résume pas à une simple concaténation de qualificatifs en fonction de la moyenne et des notes obtenues par l’élève. Une connaissance poussée de son profil est nécessaire, chose qu’une machine ne peut faire. Les appréciations proposées ici ne sont donc pas utilisables en l’état. Même si ces technologies gagnent en maturité, les résultats restent à exploiter avec précaution en gardant un regard critique sur la forme comme sur le fond. De plus, l’envoi des données et résultats d’élèves vers les serveurs d’OpenAI doit se faire de manière anonymisée, en remplaçant les noms des élèves par exemple. Principe de fonctionnement du programme La première étape consiste en l’extraction des données exportées depuis Pronote. Le fichier CSV généré contient l’ensemble des notes des élèves ainsi que leurs moyennes. Pour notre exemple simpliste, l’objectif est de générer des appréciations uniquement basées sur les résultats obtenus. Une fois extraites, les données sont ensuite réparties dans 6 listes contenant respectivement : les noms ; les moyennes ; les notes obtenues par chaque élève (hors note de participation) ; les qualificatifs à utilisés (générés en fonction de la moyenne) ; les qualificatifs concernant la participation (générés à partir de la note de participation) ; les qualificatifs concernant l’évolution des résultats (générés à partir de la liste des notes, par modélisation affine et en prenant en compte l’écart-type). Une chaîne de caractère générique est alors constituée à partir des paramètres contenus dans les listes précédentes : "Génère une appréciation de bulletin pour l'élève [nom] qui a obtenu les résultats suivant en Physique-Chimie au premier trimestre : [qualificatif], [moyenne] sur 20 de moyenne, [evolution], [participation]." Cette chaîne de caractères est ensuite envoyée via l’API d’OpenAI sous forme de requête en précisant plusieurs paramètres : le modèle qui dans notre cas est “text-davinci-003“. Il s’agit d’un des modèles GPT 3 le plus complet ; la température qui contrôle la part d’aléatoire lors de la génération du texte ; la longueur de chaîne qui correspond au nombre maximal de caractères. La sortie est ensuite récupérée et stockée à un fichier texte. Exemples d’appréciations générées Un essai a été réalisé à partir d’un fichier CSV semblable à celui généré dans Pronote mais avec des données fictives. Ces données sont présentées dans le tableau suivant. La première colonne contient les noms, la seconde contient les moyennes et les suivantes contiennent les notes obtenues lors du trimestre. La note du 30/11 est la note de participation. 30/11 15/11 07/11 30/11 15/11 01/10 15/09 6 élèves Moyenne 1 1 1 1 1 1 1 Myriam 15,1 16 12,5 20 15 Abs 12,7 14,5 Marie 12,4 12 12,5 13 12 16 11,4 10 Saïd 10,7 12 13,5 10,4 12 10 9 8 Vincent 13,9 14 14 15 13 13,5 14,4 13,5 Julia 10,6 10 8,5 15 12 Abs 8,2 10 Jean 9,5 9 6 9 7 8 12,3 15 Moy. de la classe : 12,0 12,2 11,2 13,7 11,8 11,9 11,3 11,8 Après exécution du script Python, voici quelques exemples d’appréciations brutes obtenues à partir des chaînes de caractères données en entrée : Entrée : Génère une appréciation de bulletin pour l’élève Myriam qui a obtenue les résultats suivant en Physique-Chimie au premier trimestre : très satisfaisant, 15.1 sur 20 de moyenne, des résultats en hausse significative mais irréguliers, très bonne participation, motrice pour la classe. Sortie : “Myriam a obtenu de très bons résultats en Physique-Chimie au premier trimestre, avec une moyenne de 15.1 sur 20. Ses résultats ont connu une hausse significative mais sont encore irréguliers. Elle participe activement en classe et est une véritable moteur pour la classe. Elle mérite une appréciation très satisfaisante.” Entrée : Génère une appréciation de bulletin pour l’élève Vincent qui a obtenu les résultats suivant en Physique-Chimie au premier trimestre : satisfaisant, 13.9 sur 20 de moyenne, des résultats en légère hausse et stables, bonne participation. Sortie : “Vincent a obtenu des résultats satisfaisants en Physique-Chimie au premier trimestre. Sa moyenne de 13.9 sur 20 est en légère hausse et ses résultats sont homogènes. De plus, sa participation en classe est bonne.” Entrée : Génère une appréciation de bulletin pour l’élève Julia qui a obtenue les résultats suivant en Physique-Chimie au premier trimestre : tout juste satisfaisant, 10.6 sur 20 de moyenne, des résultats en hausse significative mais irréguliers, participation assez satisfaisante. Sortie : “Julia a montré une amélioration significative de ses résultats en Physique-Chimie au premier trimestre. Sa moyenne de 10,6 sur 20 est tout juste satisfaisante et ses résultats sont irréguliers. Sa participation a été assez satisfaisante. Avec un peu plus de travail et de persévérance, Julia peut espérer obtenir des résultats plus réguliers et satisfaisants.” Entrée : Génère une appréciation de bulletin pour l’élève Jean qui a obtenu les résultats suivant en Physique-Chimie au premier trimestre : insuffisant, 9.5 sur 20 de moyenne, des résultats en baisse significative mais irréguliers, comportement inadéquat et participation insuffisante. Sortie : “Jean a obtenu des résultats insuffisants en Physique-Chimie au premier trimestre. Sa moyenne est de 9.5 sur 20 et ses résultats ont connu une baisse significative et sont irréguliers. De plus, son comportement et sa participation ont été inadéquats et insuffisants. Il est nécessaire qu’il fasse des efforts pour améliorer ses résultats et sa participation.” Présentation du code source et téléchargement Pour les plus curieux, le code source commenté est disponible ci-après. Il vous faudra créer un compte sur le site d’OpenAI et générer une clé d’API ici. La clé générée est à insérer à la ligne 23. De multiples améliorations sont réalisables, notamment concernant le choix des qualificatifs. Vous trouverez donc l’ensemble des fichiers utilisés dans cet article sur Github. À vous de jouer ! Récupérer les fichiers sur Github