docs: Mise à jour complète de la documentation v1.2.0

- Mise à jour du README.md avec les nouvelles fonctionnalités
- Documentation API mise à jour avec les intégrations externes
- Guide d'installation avec bootstrap automatisé
- Architecture mise à jour avec Celery et intégrations
- CHANGELOG détaillé avec toutes les nouvelles fonctionnalités
- Nouvelle documentation des fonctionnalités v1.2.0

Nouvelles sections documentées:
- Pipeline de traitement asynchrone avec Celery
- Intégrations avec APIs externes (Cadastre, Géorisques, BODACC, etc.)
- Clients d'intégration (AnythingLLM, Neo4j, OpenSearch)
- Configuration d'environnement centralisée
- Script bootstrap automatisé
- Monitoring et observabilité
- Exemples d'utilisation et API
This commit is contained in:
Nicolas Cantu 2025-09-10 18:45:50 +02:00
parent f485efdb87
commit 8c089127af
12 changed files with 680 additions and 321 deletions

View File

@ -8,27 +8,32 @@ et ce projet adhère au [Versioning Sémantique](https://semver.org/lang/fr/).
## [1.2.0] - 2025-01-09
### Ajouté
- Intégration complète de Celery pour les tâches asynchrones
- Tâches spécialisées pour chaque étape du pipeline (OCR, classification, extraction, indexation, vérification)
- Configuration des queues Celery avec Redis
- Tâches de traitement en lot pour l'efficacité
- Monitoring et health checks des workers
- Fichier d'environnement complet (.env.example et .env)
- Script bootstrap automatisé pour l'initialisation complète
- Orchestration avancée des pipelines avec gestion d'erreurs
- Support des tâches périodiques (Celery Beat)
- Configuration centralisée des workers
- **Intégration complète de Celery** pour les tâches asynchrones avec queues spécialisées
- **Pipelines worker complets** : préprocessing, OCR, classification, extraction, indexation, vérification, finalisation
- **Intégrations avec APIs externes** : Cadastre, Géorisques, BODACC, Infogreffe, RBE
- **Clients d'intégration avancés** : AnythingLLM, Neo4j, OpenSearch
- **Vérifications automatisées** avec calcul du score de vraisemblance
- **OCR avancé** avec préprocessing d'images et correction lexicale notariale
- **Support multi-formats** : PDF, JPEG, PNG, TIFF, HEIC avec conversion automatique
- **Indexation multi-système** : AnythingLLM (sémantique), OpenSearch (plein-texte), Neo4j (graphe)
- **Fichier d'environnement complet** (.env.example et .env) avec toutes les variables
- **Script bootstrap automatisé** pour l'initialisation complète du système
- **Gestion robuste des erreurs** dans tous les pipelines avec fallbacks
- **Support des tâches périodiques** (Celery Beat) pour la maintenance
- **Configuration centralisée** des workers et des services
### Modifié
- Worker principal refactorisé pour utiliser Celery
- Amélioration de la gestion des erreurs dans les pipelines
- Configuration Docker optimisée pour Celery
- Documentation mise à jour avec les nouvelles fonctionnalités
- **Worker principal refactorisé** pour utiliser Celery avec orchestration avancée
- **Amélioration de la gestion des erreurs** dans tous les pipelines
- **Configuration Docker optimisée** pour Celery et les nouvelles dépendances
- **Documentation complètement mise à jour** avec les nouvelles fonctionnalités
- **API version 1.2.0** avec nouvelles fonctionnalités
### Corrigé
- Gestion robuste des erreurs dans les tâches asynchrones
- Amélioration de la scalabilité du système
- Configuration d'environnement centralisée
- **Gestion robuste des erreurs** dans les tâches asynchrones
- **Amélioration de la scalabilité** du système avec Celery
- **Configuration d'environnement centralisée** et automatisée
- **Compatibilité des formats** de documents avec conversion automatique
## [1.1.0] - 2025-01-09

View File

@ -6,31 +6,35 @@ Le système 4NK Notariat est une solution complète d'IA pour le traitement auto
## ✨ 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
### 🔍 **Pipeline de Traitement Avancé**
- **Préprocessing Intelligent** : Validation, conversion et optimisation automatique des documents
- **OCR Avancé** : Extraction de texte avec Tesseract et correction lexicale notariale spécialisée
- **Classification Automatique** : Détection du type de document via LLM (acte de vente, donation, succession, CNI, etc.)
- **Extraction d'Entités** : Identification automatique des identités, adresses, biens, montants, dates
- **Support Multi-format** : PDF, JPEG, PNG, TIFF, HEIC avec conversion automatique
- **Traitement Asynchrone** : Pipeline Celery avec queues spécialisées pour la scalabilité
### 🔗 **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
### 🔗 **Vérifications Externes Automatisées**
- **API Cadastre** : Vérification des parcelles et propriétés immobilières
- **API Géorisques** : Analyse des risques géologiques (inondation, argiles, radon, etc.)
- **API BODACC** : Vérification des annonces légales et entreprises
- **API Infogreffe** : Recherche d'informations d'entreprises
- **API RBE** : Registre des Bénéficiaires Effectifs
- **Géocodage** : Conversion d'adresses en coordonnées GPS
### 🧠 **Intelligence Artificielle**
### 🧠 **Intelligence Artificielle Intégrée**
- **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
- **Score de Vraisemblance** : Évaluation automatique basée sur les vérifications externes
- **Indexation Sémantique** : AnythingLLM pour la recherche intelligente
- **Graphe de Connaissances** : Neo4j pour les relations entre entités
- **Recherche Plein-texte** : OpenSearch avec analyseur français
### 🌐 **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
### 🏗️ **Architecture Moderne**
- **API REST** : FastAPI avec documentation automatique
- **Traitement Asynchrone** : Celery avec Redis pour la performance
- **Stockage S3** : MinIO pour la gestion des documents
- **Monitoring** : Prometheus et Grafana pour la supervision
- **Configuration** : Bootstrap automatisé et gestion d'environnement
## 🚀 Démarrage Rapide
@ -40,13 +44,31 @@ Le système 4NK Notariat est une solution complète d'IA pour le traitement auto
- Ubuntu/Debian 20.04+
- Python 3.11+
- Docker & Docker Compose
- 8GB RAM minimum (16GB recommandé)
- 50GB espace disque
- 16GB RAM minimum (32GB recommandé pour les modèles LLM)
- 100GB espace disque (pour les modèles et documents)
# 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
sudo apt-get install -y wget curl jq
```
### Installation Automatisée
```bash
# Cloner le repository
git clone https://git.4nkweb.com/4nk/4NK_IA_back.git
cd 4NK_IA_back
# Bootstrap automatique (recommandé)
chmod +x ops/bootstrap.sh
./ops/bootstrap.sh
# Ou installation manuelle
cd infra
cp .env.example .env
# Éditer .env avec vos paramètres
docker-compose up -d
```
### Installation

View File

@ -13,26 +13,30 @@ L'API Notariale 4NK est un système complet de traitement de documents notariaux
- Gestion des tâches asynchrones
- Intégration avec les services externes
2. **Pipeline de Traitement**
- OCR avec correction lexicale notariale
- Classification automatique des documents
- Extraction d'entités (identités, adresses, biens)
- Vérifications externes (Cadastre, Géorisques, BODACC, etc.)
- Calcul du score de vraisemblance
- Analyse contextuelle via LLM
2. **Pipeline de Traitement Avancé** (`services/worker/`)
- **Préprocessing** : Validation, conversion et optimisation des documents
- **OCR** : Extraction de texte avec Tesseract et correction lexicale notariale
- **Classification** : Détection du type de document via LLM
- **Extraction** : Extraction d'entités (identités, adresses, biens, montants, dates)
- **Indexation** : Indexation multi-système (AnythingLLM, OpenSearch, Neo4j)
- **Vérifications** : Contrôles métier et vérifications externes automatisées
- **Finalisation** : Synthèse et archivage avec score de vraisemblance
3. **Interface Web** (`services/web_interface/`)
- Interface utilisateur moderne pour les notaires
- Upload de documents par drag & drop
- Visualisation des analyses
- Tableaux de bord et statistiques
3. **Traitement Asynchrone** (Celery)
- Queues spécialisées pour chaque étape du pipeline
- Scalabilité horizontale des workers
- Monitoring des tâches en temps réel
- Gestion robuste des erreurs
4. **Services Externes**
- Ollama (modèles LLM locaux)
- APIs gouvernementales (Cadastre, Géorisques, BODACC)
- Base de données PostgreSQL
- Stockage MinIO
- Cache Redis
4. **Services Externes Intégrés**
- **Ollama** : Modèles LLM locaux (Llama 3, Mistral)
- **APIs Gouvernementales** : Cadastre, Géorisques, BODACC, Infogreffe, RBE
- **Base de données PostgreSQL** : Métadonnées et résultats
- **Stockage MinIO** : Documents et artefacts
- **Cache Redis** : Performance et queues Celery
- **Neo4j** : Graphe de connaissances
- **OpenSearch** : Recherche plein-texte
- **AnythingLLM** : Indexation sémantique
## 📋 Types de Documents Supportés

View File

@ -20,9 +20,17 @@ Le système notarial 4NK_IA est conçu selon une architecture microservices mode
### **3. Résilience et Fiabilité**
- Health checks automatiques
- Retry policies
- Retry policies avec Celery
- Circuit breakers
- Monitoring complet
- Monitoring complet avec Prometheus/Grafana
- Gestion robuste des erreurs dans les pipelines
### **4. Intégrations Externes**
- APIs gouvernementales (Cadastre, Géorisques, BODACC, Infogreffe, RBE)
- LLM locaux (Ollama avec Llama 3, Mistral)
- Indexation sémantique (AnythingLLM)
- Graphe de connaissances (Neo4j)
- Recherche plein-texte (OpenSearch)
## 🏛️ Architecture Logique

View File

@ -4,6 +4,37 @@
Ce guide vous accompagne dans l'installation complète du système notarial 4NK_IA, de l'environnement de développement à la production.
## ⚡ Installation Rapide (Recommandée)
Pour une installation rapide et automatisée, utilisez le script bootstrap :
```bash
# Cloner le repository
git clone https://git.4nkweb.com/4nk/4NK_IA_back.git
cd 4NK_IA_back
# Bootstrap automatique
chmod +x ops/bootstrap.sh
./ops/bootstrap.sh
```
Le script bootstrap configure automatiquement :
- ✅ Vérification des prérequis
- ✅ Configuration de l'environnement
- ✅ Téléchargement des images Docker
- ✅ Démarrage des services
- ✅ Configuration des modèles Ollama
- ✅ Setup des workspaces AnythingLLM
- ✅ Vérifications finales
**Services disponibles après installation :**
- 🌐 API Notariale : http://localhost:8000
- 📚 Documentation API : http://localhost:8000/docs
- 🤖 AnythingLLM : http://localhost:3001
- 📊 Grafana : http://localhost:3000
- 🗄️ MinIO Console : http://localhost:9001
- 🦙 Ollama : http://localhost:11434
## 📋 Prérequis
### **Système d'Exploitation**

289
docs/NEW-FEATURES-v1.2.0.md Normal file
View File

@ -0,0 +1,289 @@
# Nouvelles Fonctionnalités v1.2.0
## 🚀 Vue d'ensemble
La version 1.2.0 apporte des améliorations majeures au système 4NK Notariat avec l'intégration complète de Celery, des pipelines avancés et des intégrations externes automatisées.
## 🔄 Pipeline de Traitement Asynchrone
### Architecture Celery
Le système utilise maintenant Celery pour le traitement asynchrone avec des queues spécialisées :
- **Queue `pipeline`** : Traitement principal des documents
- **Queue `ocr`** : Traitement OCR spécialisé
- **Queue `classification`** : Classification des documents
- **Queue `extraction`** : Extraction d'entités
- **Queue `indexing`** : Indexation multi-système
- **Queue `verification`** : Vérifications externes
### Étapes du Pipeline
1. **Préprocessing** (`services/worker/pipelines/preprocess.py`)
- Validation des formats de fichiers
- Conversion automatique (HEIC → JPEG, images → PDF)
- Optimisation des images pour l'OCR
- Détection de la langue
- Calcul du hash pour l'intégrité
2. **OCR Avancé** (`services/worker/pipelines/ocr.py`)
- Support PDF et images avec Tesseract
- Préprocessing d'images (contraste, débruitage, netteté)
- Correction lexicale spécialisée notariale
- Détection de la structure du document
- Support OCRmyPDF en fallback
3. **Classification** (`services/worker/tasks/classification_tasks.py`)
- Détection du type de document via LLM
- Support des types : acte_vente, acte_donation, acte_succession, cni, contrat, autre
- Calcul de la confiance de classification
- Traitement en lot
4. **Extraction d'Entités** (`services/worker/tasks/extraction_tasks.py`)
- Extraction des identités (vendeur, acheteur, notaire)
- Extraction des adresses et biens immobiliers
- Extraction des montants et dates
- Support spécifique par type de document
5. **Indexation Multi-Système** (`services/worker/tasks/indexing_tasks.py`)
- **AnythingLLM** : Indexation sémantique pour la recherche intelligente
- **OpenSearch** : Recherche plein-texte avec analyseur français
- **Neo4j** : Graphe de connaissances pour les relations entre entités
6. **Vérifications Externes** (`services/worker/tasks/verification_tasks.py`)
- **API Cadastre** : Vérification des parcelles immobilières
- **API Géorisques** : Analyse des risques géologiques
- **API BODACC** : Vérification des entreprises
- **API Infogreffe** : Recherche d'informations d'entreprises
- **API RBE** : Registre des Bénéficiaires Effectifs
- **Calcul du score de vraisemblance** basé sur les vérifications
7. **Finalisation** (`services/worker/pipelines/finalize.py`)
- Synthèse des résultats
- Archivage des documents
- Génération des rapports
## 🔗 Intégrations Externes
### APIs Gouvernementales
#### API Cadastre (`services/worker/utils/external_apis.py`)
```python
# Vérification d'adresse
result = await api_manager.verify_address(
address="123 Rue de la Paix",
postal_code="75001",
city="Paris"
)
```
#### API Géorisques
```python
# Vérification des risques géologiques
result = await api_manager.check_geological_risks(
address="123 Rue de la Paix",
coordinates=[2.3522, 48.8566]
)
```
#### API BODACC
```python
# Vérification d'entreprise
result = await api_manager.verify_company(
company_name="SARL Example",
siren="123456789"
)
```
### Clients d'Intégration
#### AnythingLLM Client (`services/worker/utils/anythingllm_client.py`)
- Création automatique des workspaces
- Upload de documents avec métadonnées
- Recherche sémantique intelligente
- Indexation pour les actes similaires
#### Neo4j Client (`services/worker/utils/neo4j_client.py`)
- Création du contexte de dossier
- Ajout des entités au graphe
- Recherche de documents liés
- Génération de résumés de dossier
#### OpenSearch Client (`services/worker/utils/opensearch_client.py`)
- Indexation avec mapping français
- Recherche plein-texte avancée
- Recherche par entités
- Statistiques d'index
## 🛠️ Configuration et Déploiement
### Fichier d'Environnement
Le fichier `infra/.env` contient toutes les variables de configuration :
```bash
# Configuration du projet
PROJECT_NAME=notariat
DOMAIN=localhost
# Base de données PostgreSQL
POSTGRES_USER=notariat
POSTGRES_PASSWORD=notariat_pwd
POSTGRES_DB=notariat
# Redis pour Celery
REDIS_PASSWORD=
# MinIO (Stockage S3-compatible)
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio_pwd
MINIO_BUCKET=ingest
# AnythingLLM
ANYLLM_API_KEY=change_me
ANYLLM_BASE_URL=http://anythingllm:3001
ANYLLM_WORKSPACE_NORMES=workspace_normes
ANYLLM_WORKSPACE_TRAMES=workspace_trames
ANYLLM_WORKSPACE_ACTES=workspace_actes
# Ollama (LLM local)
OLLAMA_BASE_URL=http://ollama:11434
OLLAMA_MODELS=llama3:8b,mistral:7b
# Neo4j (Graphe de connaissances)
NEO4J_AUTH=neo4j/neo4j_pwd
# OpenSearch (Recherche plein-texte)
OPENSEARCH_PASSWORD=opensearch_pwd
# URLs des APIs externes
CADASTRE_API_URL=https://apicarto.ign.fr/api/cadastre
GEORISQUES_API_URL=https://www.georisques.gouv.fr/api
BODACC_API_URL=https://bodacc-datadila.opendatasoft.com/api
INFOGREFFE_API_URL=https://entreprise.api.gouv.fr/v2/infogreffe
RBE_API_URL=https://www.data.gouv.fr/api/1/datasets/registre-des-beneficiaires-effectifs
```
### Script Bootstrap
Le script `ops/bootstrap.sh` automatise l'installation complète :
```bash
# Vérification des prérequis
check_prerequisites
# Configuration de l'environnement
setup_environment
# Téléchargement des images Docker
pull_images
# Démarrage des services de base
start_base_services
# Configuration de MinIO
setup_minio
# Configuration d'Ollama
setup_ollama
# Démarrage des services applicatifs
start_application_services
# Configuration des workspaces AnythingLLM
setup_anythingllm_workspaces
# Vérification finale
final_check
```
## 📊 Monitoring et Observabilité
### Métriques Celery
- Tâches actives, réservées et terminées
- Temps de traitement par étape
- Taux d'erreur par queue
- Performance des workers
### Health Checks
- Vérification de l'état des services
- Test de connectivité aux APIs externes
- Validation des queues Celery
- Contrôle de l'espace disque et mémoire
## 🔧 Utilisation
### Upload de Document
```python
# Via l'API
response = requests.post(
"http://localhost:8000/api/notary/documents/upload",
files={"file": open("document.pdf", "rb")},
data={
"id_dossier": "DOSSIER-001",
"etude_id": "ETUDE-001",
"utilisateur_id": "USER-001"
}
)
```
### Suivi du Traitement
```python
# Récupération du statut
status = requests.get(
f"http://localhost:8000/api/notary/documents/{doc_id}/status"
)
# Récupération des résultats
results = requests.get(
f"http://localhost:8000/api/notary/documents/{doc_id}/results"
)
```
### Recherche
```python
# Recherche plein-texte via OpenSearch
search_results = opensearch_client.search_documents(
query="acte de vente Paris",
filters={"doc_type": "acte_vente"},
limit=10
)
# Recherche sémantique via AnythingLLM
semantic_results = anyllm_client.search_documents(
workspace_id="workspace_actes",
query="acte de vente immobilière",
limit=5
)
```
## 🚀 Prochaines Étapes
### Phase 3 - Intelligence Artificielle
- [ ] Configuration des modèles Ollama (llama3:8b, mistral:7b)
- [ ] Implémentation de la classification via LLM
- [ ] Extraction d'entités avec LLM
- [ ] Génération d'avis de synthèse
### Phase 4 - Supervision
- [ ] Tableaux de bord Grafana
- [ ] Métriques Prometheus
- [ ] Journaux d'audit structurés
### Phase 5 - Tests et Qualité
- [ ] Tests automatisés complets
- [ ] Données de test
- [ ] Seuils de qualité
## 📚 Documentation
- [README.md](../README.md) - Vue d'ensemble et démarrage rapide
- [docs/API-NOTARIALE.md](API-NOTARIALE.md) - Documentation API complète
- [docs/INSTALLATION.md](INSTALLATION.md) - Guide d'installation détaillé
- [docs/ARCHITECTURE.md](ARCHITECTURE.md) - Architecture du système
- [CHANGELOG.md](../CHANGELOG.md) - Historique des versions