4NK_IA_back/docs/NEW-FEATURES-v1.2.0.md
Nicolas Cantu 8c089127af 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
2025-09-10 18:45:50 +02:00

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

  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)

# 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