# 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