InvoiceFlow_AI permet d'analyser automatiquement une facture PDF et d'afficher les informations extraites dans une interface web simple.
L'utilisateur importe directement un fichier PDF depuis l'interface. Le système extrait les informations importantes de la facture et affiche :
- le fournisseur ;
- la date ;
- le numéro de facture ;
- les lignes produits ;
- les montants HT et TTC ;
- les éventuels avertissements nécessitant une vérification humaine.
git clone <url-du-repo>
cd InvoiceFlow_AICréer et activer l'environnement virtuel :
python -m venv .venv
.\.venv\Scripts\activateInstaller les dépendances :
pip install pymupdf mistralai python-dotenv pydantic fastapi "uvicorn[standard]" python-multipartCréer un fichier .env à la racine du projet :
MISTRAL_API_KEY=votre_cle_api_mistralL'application est composée de deux parties :
- une API FastAPI qui réalise l'extraction ;
- une interface React permettant d'importer et consulter les factures.
Depuis la racine du projet :
uvicorn api:app --reload --port 8000L'API est disponible sur :
http://localhost:8000
Ouvrir un nouveau terminal :
cd frontendInstaller les dépendances (première utilisation uniquement) :
npm installDémarrer l'application :
npm run devPuis ouvrir l'adresse indiquée par Vite :
http://localhost:5173
- Ouvrir l'interface web.
- Cliquer sur "Importer une facture PDF".
- Sélectionner un fichier PDF.
- Attendre l'extraction automatique.
- Vérifier les informations affichées.
Les champs incertains ou non détectés sont signalés afin de permettre une validation humaine.
PDF
|
↓
API FastAPI
|
↓
Pipeline d'extraction
|
├── Extraction texte PDF
|
├── OCR Mistral si nécessaire
|
↓
Extraction structurée Mistral LLM
|
↓
Validation des données
|
↓
Affichage dans l'interface web
InvoiceFlow_AI/
│
├── api.py # API FastAPI
├── pipeline_ocr_normal.py # Orchestration du pipeline d'extraction
├── extraction_normal.py # Extraction texte PDF
├── extraction_ocr.py # OCR des documents scannés
├── llm_extraction.py # Extraction structurée avec Mistral
├── models.py # Modèles de validation
├── .env # Clé API Mistral
│
└── frontend/
└── src/
└── App.tsx # Interface React
- Python
- FastAPI
- Mistral OCR
- Mistral LLM
- Pydantic
- PyMuPDF
- React + TypeScript
- Vite