Recent Changes - Search:

Navigation

Plugins

Architecture

Infrastructure

Exploitation

Projet

AI Grader — Correction automatique par IA

AI Grader (local_dreamu_ai)

Version : 1.1.0 (2026051801) | Composant : local_dreamu_ai | Moodle 4.5+ | GitHub

Objectif

Correction automatique des devoirs Moodle (assign) par IA. Pipeline 5 passes, feedback HTML structuré, validation enseignant obligatoire avant publication.

Pipeline de correction (ai_grader.php)

  1. Pass 1 — Analyse (temp 0.3, 2000 tokens) : Lit la soumission, décrit les fichiers/sections sans juger.
  2. Pass 2 — Review exhaustif (temp 0.2, 3000 tokens) : Évalue exercice par exercice selon les critères. Vérifie les calculs. Anti-hallucination.
  3. Pass 3 — Notation par critère (temp 0.1, 4000 tokens) : JSON structuré {criteria_grades [{name, max, score, justification}], grade, points_forts, erreurs, suggestions, commentaire}. Note = somme des scores.
  4. Pass 4 — Contre-correction aveugle (temp 0.1, 3000 tokens) : Évaluation indépendante. Ne voit PAS la note pass 3. JSON {grade, feedback}.
  5. Pass 5 — Arbitrage (conditionnel, temp 0.1, 2000 tokens) : Si écart pass3/pass4 > 15% du barème. Si l'arbitrage échoue, fallback moyenne pondérée 60% pass3 / 40% pass4. Si écart faible, moyenne simple.

Calibrage post-traitement (calibrate_grade)

  • Check 1 : Si justification contient « pas fait/non fait/vide » ET score > 50% forcé à 0.
  • Check 2 : Si pass4 inférieure de > 15% du barème ajustement 70% pass3 + 30% pass4.
  • Les checks 2 (error count) et 3 (review patterns) ont été supprimés suite au retour Morancey (faux positifs).

Intégration dans le formulaire de devoir (lib.php)

Via local_dreamu_ai_coursemodule_standard_elements() :

  • Checkbox « Activer la correction IA » dans le formulaire de création de devoir
  • Textarea consignes avec compteur tokens temps réel
  • Panel dépliable 5 templates (code, dissertation, TP labo, maths, analyse de cas)
  • Champ note maximale, sélecteur langue FR/EN
  • Variables : {maxgrade}, {assignname}, {coursename}, {language}, {duedate}

Navigation (lib.php)

Menu Plus du devoir : Corriger tout avec l'IA | Valider les notes IA (N) | Historique IA | Statistiques IA | Importer des soumissions.
Navigation cours : Dashboard IA.

Tâche adhoc (grade_submissions.php)

Lancée par grade.php. Extrait le sujet (description + PDF joints). Pour chaque soumission : extraction texte, pipeline 5 passes, stockage en status=graded/validated=0. Notification Moodle à l'enseignant.

Formats supportés (get_submission_text)

Texte en ligne | Code source (30+ extensions) | HTML/Jupyter (extraction intelligente) | ZIP (max 10 fichiers, 5000 chars) | PDF (nom/taille seulement).

Smart truncation

Si > 6000 chars : découpe par exercice/section. Sinon 60% début + 40% fin.

Feedback HTML (build_html_feedback)

Bandeau éthique IA (bleu) | Note avec couleur | Tableau par critère (score/max/justification) | Points forts (vert) | Erreurs (rouge) | Suggestions (bleu) | Commentaire (gris) | Contre-correction (jaune) | Calibrage (orange) | Arbitrage (violet) | Analyse détaillée (dépliable).

Tables

TableDescription
local_dreamu_ai_configConfig par devoir : assignid (unique), enabled, prompt, maxgrade, language
local_dreamu_ai_gradesRésultats : assignid+userid, grade, feedback, rawresponse, status, validated

Capabilities

local/dreamu_ai:grade (MODULE, editingteacher+manager, RISK_PERSONAL) | local/dreamu_ai:configure (MODULE, editingteacher+manager).

Messages Moodle

grading_complete : Notification popup/email fin de correction.

Fichiers

FichierRôle
classes/ai_grader.phpPipeline 5 passes, calibrage, parsing, feedback HTML
classes/task/grade_submissions.phpTâche adhoc
lib.phpIntégration formulaire devoir + navigation
grade.phpLancement correction
validate.phpValidation notes
progress.phpProgression temps réel
stats.phpStatistiques
history.phpHistorique (cards dépliables)
dashboard.phpDashboard cours
export_csv.phpExport CSV
regrade.phpRe-correction individuelle
import_submissions.phpImport ZIP
test_api.phpTest connexion API
settings.phpConfig admin
Edit - History - Print - Recent Changes - Search
Page last modified on 03/06/2026 12:32