Chargement...

Article

Génération d'appréciations assistée par une intelligence artificielle

 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.

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 :

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

  Modifié le : 09/05/2022 19:26:25