fd7f2151a624b43aac4d31e086b9ed6d1ac70ef2
Extraction OGC — Ministral-3 8B
Extraction automatique des fiches OGC (Organisme de Gestion du Contrôle) vers Excel. Modèle : ministral-3:8b-cloud (vision via Ollama).
Structure du dossier
TestExtract_mistral/
├── extraction.py ← script principal
├── README.md ← ce fichier
├── scanOgc -> ../testExtraction2/scanOgc ← lien symbolique vers les PDFs
└── output/
├── extraction_ogc.xlsx ← résultat (4 onglets)
└── extraction_ogc_raw.json ← données brutes pour debug
Lancement
cd TestExtract_mistral
# Tous les fichiers
python3 extraction.py
# Un seul fichier (relance partielle — fusionne avec le cache)
python3 extraction.py "358"
Ce que fait le script
Même logique que le projet qwen (testExtraction2) :
- Convertit chaque page PDF en image (200 DPI)
- Envoie l'image à ministral-3:8b-cloud pour identifier le type de page
- Ignore la page "Séjour d'hospitalisation complète" (bloc manuscrit — phase 2)
- Pour chaque autre page, extrait les données en JSON via un prompt dédié
- Assemble tout en Excel (4 onglets)
Types de pages traités
| Type | Action |
|---|---|
| FICHE_RECUEIL | Extrait (données séjour, codages, GHM/GHS) |
| ELEMENTS_PREUVE | Extrait (tableau 17 documents) |
| FICHE_ADMIN_2_2 | Extrait (GHS final, décision concertation) |
| FICHE_ADMIN_1_2 | Extrait (argumentaire imprimé complet) |
| SEJOUR_MANUSCRIT | Ignoré — commentaires manuscrits (phase 2) |
| FICHE_CONCERTATION_VIDE | Ignoré — page vide |
Sortie Excel (4 onglets)
Données principales — 1 ligne par OGC, tous les champs scalaires
Diagnostics — 1 ligne par code (DP/DR/DAS), établissement + recodage
Actes — 1 ligne par acte CCAM, établissement + recodage
Eléments de preuve — 1 ligne par type de document × OGC
Différences vs projet Qwen
| Qwen3-VL 235B | Ministral-3 8B | |
|---|---|---|
| Vitesse par page | ~10–100s | ~2–10s |
| Thinking mode | Oui (num_predict=8192 obligatoire) | Non (num_predict=2048 suffit) |
| Rate limit | Modéré | Plus serré — pause 3s entre requêtes |
| JSON malformé | Rare | Parfois des newlines dans les valeurs |
Particularités techniques
- Pas de thinking : ministral répond directement, les prompts courts et le
num_predict=2048suffisent. - Rate limit serré : pause de 3s entre chaque requête + retry automatique sur 429. Ne pas lancer en parallèle avec le projet qwen.
- Newlines dans JSON : ministral peut inclure des sauts de ligne dans les valeurs string — le parser les nettoie automatiquement.
- Relance partielle :
python3 extraction.py "XXX"charge le cache JSON existant.
Prérequis
pip install pdf2image pillow pandas openpyxl requests
# Ollama doit tourner (ollama serve)
# Modèle requis : ministral-3:8b-cloud
Description
Languages
Python
100%