version a 82%
This commit is contained in:
94
README.md
Normal file
94
README.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user