# 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 ```bash 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`) : 1. Convertit chaque page PDF en image (200 DPI) 2. Envoie l'image à **ministral-3:8b-cloud** pour identifier le type de page 3. Ignore la page "Séjour d'hospitalisation complète" (bloc manuscrit — phase 2) 4. Pour chaque autre page, extrait les données en JSON via un prompt dédié 5. 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=2048` suffisent. - **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 ```bash pip install pdf2image pillow pandas openpyxl requests # Ollama doit tourner (ollama serve) # Modèle requis : ministral-3:8b-cloud ```