feb7277fe93ddf17a31dbe9239ccacb8c5075854
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
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
- Convertit chaque page PDF en image (200 DPI)
- Envoie l'image à qwen3-vl:235b-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
Particularités techniques
- Thinking mode : qwen3-vl génère ~4000 tokens de réflexion interne avant la réponse.
num_predict=8192est 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
pip install pdf2image pillow pandas openpyxl requests
# Ollama doit tourner (ollama serve)
# Modèle requis : qwen3-vl:235b-cloud
Description
Languages
Python
100%