2026-10-06 11:44:37 +02:00
2026-10-06 11:44:37 +02:00
2026-10-06 11:27:53 +02:00
2026-10-06 11:44:37 +02:00
2026-09-17 22:19:05 +02:00
2026-08-26 13:45:15 +02:00
2026-09-26 22:08:27 +02:00
2026-09-09 14:53:04 +02:00
2026-09-29 15:21:15 +02:00
2026-09-12 23:56:07 +02:00
2026-09-29 15:21:15 +02:00

Copienator

Présentation

Quézaco

Ce dépôt contient un certain nombre de script Python que j'utilise pour faire corriger des copies par Gemini.

  1. L'énoncé (pdf/tex) et le corrigé sont analysés
  2. Les labels des questions sont détectées sur les copies.
  3. Les copies sont découpées suivant ces labels.
  4. Des requêtes de correction sont faites à Gemini, qui met une note entre 0 et 4 à la question, ajoute des commentaires, et encadre certaines parties de la réponse.
  5. Une version pdf annotée de la copie est générée, faite pour être éditée sur tablette tactile. Le correcteur humain peut modifier la note, supprimer des commentaires de l'IA, ou ajouter des remarques manuscrites.
  6. Ces annotations manuscrites sont lues et recompilées en une version de la copie pour l'élève.

Le dossier `Example` contient deux exemples de copies pour illustrer le résultat final.

Avertissements

  • 90% du code du repertoire a été vibe codé, sans vérification autre que le fait que ça marche sur ma machine.
  • Il en va de même d'une grande partie de la documentation, et le workflow n'est probablement pas compréhensible en l'état. Cette situation s'améliorera légèrement quand j'aurai convaincu quelques collègues du lycée de me laisser les accompagner pour essayer.

Limitations

Pour l'instant, la correction est faite question par question : le LLM n'a accès qu'à la partie de la copie correspondant à une question fixée. Ça ne gère donc pas les cas où un argument a été donné dans une question précédente ou autre.

Noms de labels sous Windows

Les labels de questions sont utilisés comme noms de fichiers. Les labels contenant notamment : ne sont pas acceptés par Windows.

Prérequis et installation

Python 3.11 ou plus récent

Sous macOS avec Homebrew, installer Python et la version correspondante de Tkinter avant de créer l'environnement virtuel. Par exemple :

brew install python@3.13 python-tk@3.13

Utiliser alors python3.13 à la place de python dans les commandes de création de l'environnement si la commande non versionnée n'est pas disponible.

Créer et activer un environnement virtuel est recommandé :

python -m venv .venv

Sous Linux et macOS :

source .venv/bin/activate

Sous Windows (PowerShell) :

.venv\Scripts\Activate.ps1

Installer ensuite Copienator et ses dépendances Python depuis la racine du dépôt :

python -m pip install --upgrade pip
python -m pip install -e .

Cette commande installe les modules contrôlés par le diagnostic du GUI (NumPy, pandas, Matplotlib, Pillow, pydantic, pypdf, pdf2image, ReportLab, img2pdf, PyMuPDF, ftfy, ezodf et Google Gen AI), ainsi que les exécutables copienator et copienator-gui. Le paquet fournissant google.genai est google-genai, et non google.

Les commandes restent également accessibles avec python -m copienator depuis la racine du dépôt.

Programmes externes obligatoires

Le diagnostic vérifie que Poppler et LaTeX sont accessibles depuis PATH.

Linux (Debian et Ubuntu)
sudo apt install poppler-utils python3-tk texlive-latex-extra texlive-fonts-extra lmodern python3-pygments

Cette sélection couvre les modèles LaTeX de la configuration par défaut, notamment standalone, lmodern, mathabx et minted. Selon les commandes LaTeX utilisées dans vos propres énoncés, d'autres paquets TeX peuvent être nécessaires. python3-tk fournit Tkinter sur les installations Python qui ne l'incluent pas d'origine.

Windows
  1. Télécharger Poppler pour Windows et ajouter son dossier bin à PATH.
  2. Installer une distribution LaTeX, par exemple MiKTeX ou TeX Live, et vérifier que pdflatex est accessible depuis PATH.

Fermer puis rouvrir le terminal et le GUI après une modification de PATH.

macOS

Avec Homebrew, installer Poppler et MacTeX :

brew install poppler
brew install --cask mactex

MacTeX fournit la distribution TeX Live complète utilisée par les modèles de Copienator. Après son installation, rouvrir le terminal ou exécuter :

eval "$(/usr/libexec/path_helper)"

Copienator recherche aussi les exécutables dans /opt/homebrew/bin, /usr/local/bin et /Library/TeX/texbin, notamment lorsque le GUI ne récupère pas le PATH du terminal. Ces instructions conviennent aux Mac Intel et Apple Silicon sous macOS 11 ou plus récent.

Programme externe facultatif

PDF Arranger permet d'ouvrir et de réorganiser plus facilement les PDF. Son absence est signalée comme facultative dans le diagnostic. Il doit fournir la commande pdf-arranger ou pdfarranger dans PATH. Sous macOS, Copienator utilise automatiquement Aperçu comme solution de repli.

Accès à Gemini

Il faut créer une clef API pour Gemini (pas facile).

Puis ajouter GEMINI_API_KEY à l'environnement avec :

export GEMINI_API_KEY=…

ou éventuellement, la renseigner directement dans le fichier `config.py`.

Configuration

Copier `default_config.py` en `config.py`. Éventuellement le modifier.

Correction d'un paquet de copies

  1. Créer un fichier names dans le dossier courant, avec les noms/prénoms des élèves, un par ligne
  2. Créer un dossier correspondant à l'évaluation (Interro dans la suite)
  3. Lancer l'interface graphique

Interface graphique

Lancer l'assistant avec :

python -m copienator gui

ou

./start-gui.sh

Documentation complémentaire

S
Description
No description provided
Readme
65 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 98.7%
TypeScript 1.2%