Files
t2a-extractor/README.md
dom 751922d032 fix: align model name to gemma3:27b-cloud + add architecture diagram & deployment zip
setup.sh and README.md referenced gemma3:27b-it-qat while config.py uses
gemma3:27b-cloud. Added architecture.html (Mermaid pipeline diagram) and
t2a-extractor.zip for collaborator deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 21:31:57 +01:00

2.0 KiB

T2A Extractor

Extraction structurée de rapports de contrôle T2A (décisions UCR) depuis des PDF natifs et scannés.

Architecture

PDF UCR → [pymupdf/docTR] → texte brut → [regex] → blocs OGC → [VLM Ollama] → JSON → [validation] → Excel/CSV

Pipeline

  1. Extraction texte — Détection automatique natif/scanné par page. pymupdf pour le natif, docTR pour l'OCR.
  2. Segmentation — Découpage en blocs par Champ et par OGC (individuels et groupés) via regex.
  3. Extraction structurée — Chaque bloc est envoyé au VLM local (Ollama) qui retourne un JSON structuré.
  4. Validation — Vérification des codes CIM-10/CCAM, cohérence des décisions.
  5. Export — Excel formaté (avec coloration des décisions) et CSV optionnel.

Schéma de sortie (11 colonnes)

Colonne Description
champ Numéro de champ
num_ogc Numéro OGC
type_desaccord DP / DAS / DP+DAS / Actes
codes_etablissement Codes CIM-10/CCAM de l'établissement
libelle_etablissement Libellé du codage établissement
codes_controleurs Codes CIM-10/CCAM des contrôleurs
libelle_controleurs Libellé du codage contrôleurs
decision_ucr Favorable / Défavorable (pour l'établissement)
codes_retenus Codes finalement retenus
ghm_ghs GHM/GHS si mentionnés
texte_decision Texte intégral de la décision UCR

Installation

chmod +x setup.sh
./setup.sh

Usage

source .venv/bin/activate
python main.py rapport_ucr.pdf
python main.py rapport_ucr.pdf --csv --verbose
python main.py rapport_ucr.pdf -o /chemin/sortie --csv -v

Prérequis

  • Python 3.12+
  • Ollama avec un VLM (gemma3:27b-cloud par défaut)
  • GPU recommandé pour docTR (fonctionne aussi en CPU)

Configuration

Éditer config.py pour ajuster :

  • OLLAMA_MODEL — modèle à utiliser
  • OLLAMA_BASE_URL — URL du serveur Ollama
  • OCR_DPI — résolution OCR (défaut: 200)
  • NATIVE_TEXT_MIN_CHARS — seuil de détection natif/scanné