Plugin AI Grader

Rapport de présentation -- Plateforme estud{IA}nt.e.s
Projet Dream-U -- IUT Aix-Marseille Université -- Mai 2026
Younes Benahmed -- BUT2 Informatique
← Retour aux rapports

1. Qu'est-ce que l'AI Grader ?

L'AI Grader est un plugin Moodle qui corrige automatiquement les travaux des étudiants en utilisant l'intelligence artificielle. L'enseignant définit les critères de correction, l'IA analyse chaque soumission et produit une note détaillée par critère avec un feedback structuré.

L'IA tourne entièrement en local sur l'infrastructure de l'IUT (DGX Spark). Aucune donnée n'est envoyée à un service externe. Les notes sont proposées à l'enseignant qui valide ou ajuste avant publication.

Cas d'usage :

M. Morancey a un examen de statistiques avec 30 copies de notebooks Jupyter. Plutôt que de corriger manuellement chaque copie, il lance l'AI Grader qui analyse le code Python, vérifie les calculs et produit un feedback détaillé par exercice. Il relit les notes suggérées, ajuste si nécessaire, et publie les notes en un clic.

2. Pipeline de correction en 5 passes

Chaque soumission est analysée par un pipeline de 5 passes indépendantes pour garantir la fiabilité de la note :

Pass 1Analyse et compréhension
Pass 2Review exhaustif exercice par exercice
Pass 3Notation par critère
Pass 4Contre-correction aveugle
Pass 5Arbitrage (si désaccord)
PassRôleDétail
1. AnalyseComprendre la soumissionListe les fichiers, décrit chaque fonction/exercice, identifie le type de contenu (code, essai, etc.)
2. ReviewÉvaluation détailléePour chaque exercice du sujet : statut (fait/pas fait), méthode utilisée, vérification des calculs, erreurs spécifiques
3. NotationNote par critèreJSON structuré : score/max par critère + justification + points forts/erreurs/suggestions
4. Contre-correctionSecond avis indépendantL'IA note la copie de zéro, sans voir la note de la pass 3 (correction aveugle)
5. ArbitrageDécision finaleDéclenché uniquement si l'écart entre passes 3 et 4 dépasse 15% du barème. Tranche en analysant les deux justifications.
Calibrage post-traitement :

Après le pipeline, un algorithme de calibrage vérifie la cohérence entre le feedback et la note :

-- Si un critère est marqué "pas fait" mais a un score > 30% : forcé à 0

-- Si un critère mentionne des erreurs mais a un score > 80% : plafonné à 60%

-- Si la contre-correction est significativement plus basse : la note est tirée vers le bas

3. Configuration par l'enseignant

L'enseignant configure l'AI Grader directement dans les paramètres du devoir Moodle. Une section "Dream-U AI Grader" apparaît avec :

Paramètres du devoir avec AI Grader
Page du devoir Moodle avec l'onglet "Corriger tout avec l'IA"
Exemple de consignes :

"Tu corriges un examen de statistiques en Python. Critères : Exercice 1 (25 pts) : calcul de la médiane. Exercice 2 (40 pts) : analyse de données avec graphiques. Exercice 3 (35 pts) : analyse avec Pandas."

4. Injection automatique du sujet d'examen

L'AI Grader extrait automatiquement le sujet d'examen pour que l'IA connaisse les questions posées aux étudiants :

Cela évite que l'IA invente des exercices ou évalue sur des critères hors-sujet.

5. Sélection des étudiants et lancement

L'enseignant accède à la page de correction via l'onglet "Corriger tout avec l'IA" du devoir. Il peut :

Sélection des étudiants
Page de sélection des étudiants à corriger avec cases à cocher

6. Progression en temps réel

Après le lancement, une page de progression affiche en temps réel :

L'enseignant peut quitter la page : une notification Moodle lui sera envoyée quand la correction sera terminée.

Dashboard AI Grader
Dashboard AI Grader du cours avec l'historique des corrections

7. Feedback structuré pour l'étudiant

Chaque correction produit un feedback HTML riche avec :

Bandeau d'information IA

En haut du feedback, un bandeau bleu informe l'étudiant : "Cette correction a été assistée par intelligence artificielle et validée par votre enseignant(e). Si vous souhaitez des précisions ou contester un point, contactez directement votre enseignant(e)."

Note globale

La note est affichée avec un code couleur : vert (≥ 70%), orange (50-70%), rouge (< 50%).

Tableau détaillé par critère

Un tableau affiche pour chaque exercice/critère :

CritèreScoreJustification
Exercice 1 : Médiane et écart-type1.5/4La fonction médiane est implémentée mais la fonction d'écart-type a échoué avec un TypeError (0/2).
Exercice 2 : Analyse de données météo7.5/8Analyse complète avec histogramme, boxplot, corrélation et régression linéaire.
Exercice 3 : Analyse avec Pandas5/8Utilisation correcte de pandas pour les moyennes, mais incomplet.

Sections colorées

Configuration admin AI Grader
Page de configuration admin : endpoint IA, modèle, clé API

8. Validation par l'enseignant

Les notes IA ne sont jamais publiées automatiquement. L'enseignant accède à la page de validation et peut pour chaque étudiant :

Page de validation
Page de validation : notes éditables, feedback, boutons approuver/rejeter

Si l'enseignant ne modifie pas le textarea, le feedback HTML riche est envoyé à l'étudiant. S'il le modifie, son texte remplace le HTML.

9. Traitement des formats de soumission

Formats supportés

FormatTraitement
Texte en ligne (Moodle)Extrait directement
Code source (.py, .java, .cpp, .js, etc.)Lu et analysé avec détection du langage
Fichier HTML / Jupyter NotebookExtraction intelligente : blocs de code préservés, CSS/JS supprimés, graphiques détectés
Archive ZIPDécompression + lecture des fichiers texte (max 20 fichiers)
PDFExtraction via pdftotext

Extraction intelligente des notebooks Jupyter

Les fichiers HTML générés par Jupyter contiennent beaucoup de CSS et JavaScript inutiles. L'AI Grader :

Troncation intelligente

Si la soumission dépasse la capacité du modèle IA, elle est tronquée intelligemment :

10. Statistiques et calibration

La page de statistiques affiche :

Page statistiques
Page statistiques : distribution des notes, calibration IA vs manuel

11. Anti-hallucination

Pour éviter que l'IA invente du contenu (comme des questions de probabilités pour un cours de statistiques descriptives), plusieurs garde-fous sont en place :

12. Sécurité et éthique

AspectMesure
Données100% local -- aucune donnée ne quitte l'IUT
TransparenceBandeau IA dans le feedback : l'étudiant sait que l'IA a assisté la correction
Validation humaineL'enseignant valide TOUJOURS avant publication -- aucune note automatique
PermissionsSeuls les enseignants avec local/dreamu_ai:grade peuvent lancer la correction
ContestationLe bandeau invite l'étudiant à contacter l'enseignant pour contester

13. Récapitulatif des fonctionnalités

FonctionnalitéDescription
Pipeline 5 passesAnalyse, review, notation par critère, contre-correction aveugle, arbitrage
Notation par critèreTableau score/max/justification pour chaque exercice
Injection du sujetPDF de l'examen extrait et envoyé à l'IA automatiquement
CalibrageVérification automatique de la cohérence feedback/note
Validation enseignantNote et feedback éditables, approbation individuelle ou en lot
Progression temps réelBarre de progression AJAX + notification Moodle
Formats multiplesCode, HTML/Jupyter, ZIP, PDF, texte en ligne
Extraction JupyterBlocs de code extraits, graphiques détectés
Troncation intelligenteDécoupage par exercice, garde début + fin
Anti-hallucinationPrompts stricts, injection sujet, contre-correction aveugle
Bandeau éthiqueInformation transparente à l'étudiant sur l'usage de l'IA
Export CSVExport des notes avec feedback
StatistiquesDistribution, calibration IA vs manuel, corrélation Pearson
Re-correctionRelancer la correction pour un étudiant individuel
Import ZIPImporter des soumissions en lot depuis une archive
Échelle dynamiqueS'adapte au barème (/20, /100, /10, etc.)

14. Architecture technique

FichierRôle
classes/ai_grader.phpMoteur de correction : pipeline 5 passes, calibrage, extraction HTML/PDF
classes/task/grade_submissions.phpTâche adhoc pour correction en arrière-plan
grade.phpPage de sélection des étudiants et lancement
validate.phpPage de validation avec note/feedback éditables
progress.phpProgression temps réel (AJAX polling)
stats.phpStatistiques et calibration
regrade.phpRe-correction individuelle
export_csv.phpExport CSV des notes
import_submissions.phpImport de soumissions en lot (ZIP)
dashboard.phpDashboard par cours
lib.phpIntégration Moodle : formulaire devoir, navigation