Nicolas Cantu f485efdb87 feat: Implémentation complète des pipelines et intégrations
- Pipelines worker complets (preprocess, ocr, classify, extract, index, checks, finalize)
- Intégration avec les APIs externes (Cadastre, Géorisques, BODACC, Infogreffe, RBE)
- Client AnythingLLM pour l'indexation et la recherche sémantique
- Client Neo4j pour la gestion du graphe de connaissances
- Client OpenSearch pour la recherche plein-texte
- Vérifications automatisées avec calcul du score de vraisemblance
- Amélioration des pipelines OCR avec préprocessing avancé
- Support des formats PDF, images avec conversion automatique
- Correction lexicale spécialisée notariale
- Indexation multi-système (AnythingLLM, OpenSearch, Neo4j)

Fonctionnalités ajoutées:
- Vérification d'adresses via API Cadastre
- Contrôle des risques géologiques via Géorisques
- Vérification d'entreprises via BODACC
- Recherche de personnes via RBE et Infogreffe
- Indexation sémantique dans AnythingLLM
- Recherche plein-texte avec OpenSearch
- Graphe de connaissances avec Neo4j
- Score de vraisemblance automatisé
2025-09-10 18:37:04 +02:00

🏛️ 4NK Notariat - Système de Traitement de Documents Notariaux

🎯 Vue d'ensemble

Le système 4NK Notariat est une solution complète d'IA pour le traitement automatisé de documents notariaux. Il combine OCR avancé, classification intelligente, extraction d'entités, vérifications externes et analyse contextuelle via LLM pour fournir aux notaires un outil puissant d'analyse et de validation de documents.

Fonctionnalités Principales

🔍 Traitement de Documents

  • OCR Avancé : Extraction de texte avec correction lexicale notariale
  • Classification Automatique : Détection du type de document (acte de vente, donation, succession, CNI, etc.)
  • Extraction d'Entités : Identification automatique des identités, adresses, biens, montants
  • Support Multi-format : PDF, JPEG, PNG, TIFF, HEIC

🔗 Vérifications Externes

  • Cadastre : Vérification des parcelles et propriétés
  • Géorisques : Analyse des risques (inondation, argiles, radon, etc.)
  • BODACC : Vérification des annonces légales
  • Gel des Avoirs : Contrôle des sanctions
  • Infogreffe : Vérification des entreprises
  • RBE : Bénéficiaires effectifs

🧠 Intelligence Artificielle

  • LLM Local : Analyse contextuelle avec Ollama (Llama 3, Mistral)
  • Score de Vraisemblance : Évaluation automatique de la cohérence
  • Avis de Synthèse : Analyse intelligente et recommandations
  • Détection d'Anomalies : Identification des incohérences

🌐 Interface Moderne

  • Interface Web : Upload par drag & drop, visualisation des analyses
  • API REST : Intégration avec les systèmes existants
  • Tableaux de Bord : Statistiques et monitoring
  • Rapports : Export des analyses et recommandations

🚀 Démarrage Rapide

Prérequis

# Système
- Ubuntu/Debian 20.04+
- Python 3.11+
- Docker & Docker Compose
- 8GB RAM minimum (16GB recommandé)
- 50GB espace disque

# Dépendances système
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv docker.io docker-compose
sudo apt-get install -y tesseract-ocr tesseract-ocr-fra poppler-utils imagemagick

Installation

# 1. Cloner le projet
git clone <repository>
cd 4NK_IA

# 2. Démarrage automatique
./start_notary_system.sh

Accès

📋 Types de Documents Supportés

Type Description Entités Extraites
Acte de Vente Vente immobilière Vendeur, acheteur, bien, prix, adresse
Acte de Donation Donation entre vifs Donateur, donataire, bien, valeur
Acte de Succession Succession et notoriété Héritiers, défunt, biens, parts
CNI Carte d'identité Identité, date de naissance, nationalité
Contrat Contrats divers Parties, obligations, clauses
Autre Documents non classés Entités génériques

🔧 Configuration

Variables d'Environnement

# Base de données
POSTGRES_USER=notariat
POSTGRES_PASSWORD=notariat_pwd
POSTGRES_DB=notariat

# APIs Externes
API_GOUV_KEY=your_api_gouv_key
RBE_API_KEY=your_rbe_key
GEOFONCIER_USERNAME=your_username
GEOFONCIER_PASSWORD=your_password

# LLM
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_DEFAULT_MODEL=llama3:8b

Modèles LLM Recommandés

  • llama3:8b : Équilibré, bon pour la classification (8GB RAM)
  • mistral:7b : Rapide, bon pour l'extraction (7GB RAM)
  • llama3:70b : Plus précis, nécessite plus de ressources (40GB RAM)

📊 Pipeline de Traitement

graph TD
    A[Upload Document] --> B[Validation Format]
    B --> C[OCR & Extraction Texte]
    C --> D[Classification Document]
    D --> E[Extraction Entités]
    E --> F[Vérifications Externes]
    F --> G[Calcul Score Vraisemblance]
    G --> H[Analyse LLM]
    H --> I[Rapport Final]

Étapes Détaillées

  1. Upload & Validation : Vérification du format et génération d'un ID unique
  2. OCR : Extraction de texte avec correction lexicale notariale
  3. Classification : Détection du type via règles + LLM
  4. Extraction : Identification des entités (identités, adresses, biens)
  5. Vérifications : Appels aux APIs externes (Cadastre, Géorisques, etc.)
  6. Score : Calcul du score de vraisemblance (0-1)
  7. Analyse : Synthèse contextuelle et recommandations via LLM

🛠️ Utilisation

Interface Web

  1. Upload : Glissez-déposez votre document
  2. Configuration : Renseignez les métadonnées (dossier, étude, utilisateur)
  3. Traitement : Suivez la progression en temps réel
  4. Analyse : Consultez les résultats et recommandations

API REST

# Upload d'un document
curl -X POST "http://localhost:8000/api/notary/upload" \
  -F "file=@document.pdf" \
  -F "id_dossier=D-2025-001" \
  -F "etude_id=E-001" \
  -F "utilisateur_id=U-123"

# Récupération de l'analyse
curl "http://localhost:8000/api/notary/document/{document_id}/analysis"

📈 Performance

Benchmarks

  • PDF simple : ~30 secondes
  • PDF complexe : ~2 minutes
  • Image haute résolution : ~45 secondes
  • Débit : ~10 documents/heure (configuration standard)

Optimisations

  • Cache Redis : Mise en cache des résultats
  • Traitement parallèle : Workers multiples
  • Compression : Images optimisées pour l'OCR
  • Indexation : Base de données optimisée

🔒 Sécurité

Authentification

  • JWT tokens pour l'API
  • Sessions utilisateur pour l'interface web
  • Clés API pour les services externes

Conformité

  • RGPD : Anonymisation des données
  • Audit trail : Traçabilité complète
  • Rétention : Gestion configurable des données

🚨 Dépannage

Problèmes Courants

OCR de Mauvaise Qualité

# Vérifier Tesseract
tesseract --version

# Tester l'OCR
tesseract image.png output -l fra

Erreurs de Classification

# Vérifier Ollama
curl http://localhost:11434/api/tags

# Tester un modèle
curl http://localhost:11434/api/generate -d '{"model":"llama3:8b","prompt":"Test"}'

APIs Externes Inaccessibles

# Tester la connectivité
curl https://apicarto.ign.fr/api/cadastre/parcelle

# Vérifier les clés API
echo $API_GOUV_KEY

Logs

# Logs de l'API
tail -f logs/api.log

# Logs des services Docker
docker-compose logs -f

# Logs de tous les services
make logs

📚 Documentation

🔄 Mise à Jour

# Mise à jour du code
git pull origin main
pip install -r docker/host-api/requirements.txt

# Redémarrage
./stop_notary_system.sh
./start_notary_system.sh

📞 Support

Ressources

  • Documentation : docs/ directory
  • Tests : tests/ directory
  • Issues : GitHub Issues

Contact

🏗️ Architecture Technique

Stack Technologique

  • Backend : FastAPI (Python 3.11+)
  • Frontend : HTML5, CSS3, JavaScript (Bootstrap 5)
  • Base de données : PostgreSQL
  • Cache : Redis
  • Stockage : MinIO (S3-compatible)
  • LLM : Ollama (Llama 3, Mistral)
  • OCR : Tesseract + OpenCV
  • Conteneurisation : Docker & Docker Compose

Services

  • host-api : API principale FastAPI
  • worker : Tâches de traitement asynchrones
  • postgres : Base de données relationnelle
  • redis : Cache et queues
  • minio : Stockage objet
  • ollama : Modèles LLM locaux
  • anythingllm : Interface LLM (optionnel)

📊 Monitoring

Métriques Disponibles

  • Temps de traitement : Moyenne par type de document
  • Taux de réussite : Pourcentage de documents traités avec succès
  • Qualité OCR : Confiance moyenne de l'extraction
  • Score de vraisemblance : Distribution des scores

Health Checks

# Statut de l'API
curl http://localhost:8000/api/health

# Statut des services
curl http://localhost:8000/api/notary/stats

🎯 Roadmap

Version 1.1

  • Support de nouveaux types de documents
  • Amélioration de la précision OCR
  • Intégration de nouvelles APIs externes
  • Interface mobile responsive

Version 1.2

  • Machine Learning pour l'amélioration continue
  • Support multi-langues
  • Intégration avec les systèmes notariaux existants
  • API GraphQL

Version : 1.0.0 Dernière mise à jour : 9 janvier 2025 Auteur : Équipe 4NK Licence : MIT

🚀 Démarrage Immédiat

# Cloner et démarrer en une commande
git clone <repository> && cd 4NK_IA && ./start_notary_system.sh

Votre système de traitement de documents notariaux est prêt en quelques minutes ! 🎉

Description
No description provided
Readme 536 KiB
Languages
Python 89.5%
Shell 8.2%
Makefile 1.8%
Dockerfile 0.5%