- 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
290 lines
7.9 KiB
Markdown
290 lines
7.9 KiB
Markdown
# 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
|