# Extraction OGC — Qwen3-VL 235B Extraction automatique des fiches OGC (Organisme de Gestion du Contrôle) vers Excel. Modèle : **qwen3-vl:235b-cloud** (vision multimodal via Ollama). --- ## Structure du dossier ``` testExtraction2/ ├── extraction.py ← script principal ├── README.md ← ce fichier ├── PLAN_EXTRACTION.md ← documentation technique détaillée ├── scanOgc/ ← 12 PDFs source (OGC 358 à 429) └── output/ ├── extraction_ogc.xlsx ← résultat (4 onglets) └── extraction_ogc_raw.json ← données brutes pour debug ``` --- ## Lancement ```bash cd testExtraction2 # Tous les fichiers python3 extraction.py # Un seul fichier (relance partielle — fusionne avec le cache) python3 extraction.py "358" ``` --- ## Ce que fait le script 1. Convertit chaque page PDF en image (200 DPI) 2. Envoie l'image à **qwen3-vl:235b-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 --- ## Particularités techniques - **Thinking mode** : qwen3-vl génère ~4000 tokens de réflexion interne avant la réponse. `num_predict=8192` est obligatoire pour avoir assez de budget tokens. - **Rate limit** : pause de 2s entre chaque requête + retry automatique sur 429 (attente 60s × tentative). - **Ordre des pages variable** : identification par titre, pas par numéro de page. - **Relance partielle** : `python3 extraction.py "XXX"` charge le cache JSON existant et ne réécrase que le fichier relancé. --- ## Prérequis ```bash pip install pdf2image pillow pandas openpyxl requests # Ollama doit tourner (ollama serve) # Modèle requis : qwen3-vl:235b-cloud ```