- 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
7.9 KiB
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
-
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é
-
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
-
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
-
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
-
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
-
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
-
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
)
# Vérification d'adresse
result = await api_manager.verify_address(
address="123 Rue de la Paix",
postal_code="75001",
city="Paris"
)
API Géorisques
# 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
# 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 :
# 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 :
# 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
# 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
# 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
# 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 - Vue d'ensemble et démarrage rapide
- docs/API-NOTARIALE.md - Documentation API complète
- docs/INSTALLATION.md - Guide d'installation détaillé
- docs/ARCHITECTURE.md - Architecture du système
- CHANGELOG.md - Historique des versions