Aller au contenu principal

Système de Traitement des Documents (OCR & IA)

Ce document décrit l'architecture et l'utilisation du système de traitement des documents intégré à Aaperture.

🚀 Vue d'ensemble

Le système permet d'uploader des documents (PDF, Images), d'en extraire le texte via OCR, puis d'utiliser l'IA pour structurer ces données et les appliquer automatiquement aux entités du CRM (Sessions, Contacts).

🏗️ Architecture Technique

Le système repose sur un pipeline asynchrone utilisant BullMQ :

  1. Ingestion (doc:ingest) : Analyse le fichier, compte les pages et prépare le pipeline.
  2. OCR (doc:ocr) : Extrait le texte de chaque page en haute résolution à l'aide de Tesseract.js.
  3. Extraction (doc:extract_structured) : Utilise OpenAI GPT pour transformer le texte brut en données JSON structurées.
  4. Validation : Compare les données extraites avec le contexte (ex: date de session, email du contact).

🛠️ Composants Clés

Backend

  • PdfService : Gestion optimisée des PDFs (extraction parallèle des pages).
  • LlmService : Interface avec OpenAI pour l'extraction de données.
  • DocumentExtractionTemplateService : Gestion des schémas d'extraction personnalisés.
  • DocumentValidationService : Logique de vérification de la cohérence des données.

Frontend

  • DocumentUpload : Interface d'upload avec gestion des URLs présignées R2.
  • DocumentExtraction : Interface pour lancer l'analyse IA et exporter les données.
  • DocumentValidation : Affichage des alertes et incohérences détectées.
  • DocumentDataApplication : Boutons d'auto-remplissage pour le CRM.

📝 Guide d'Utilisation

1. Templates d'Extraction Personnalisés

Vous pouvez définir vos propres modèles pour extraire des champs spécifiques. Un template est défini par un schéma JSON où la clé est le nom du champ et la valeur est la description de ce que l'IA doit chercher.

Exemple de schéma :

{
"total_ht": "Le montant total hors taxes de la facture",
"num_tva": "Le numéro de TVA intracommunautaire du prestataire",
"date_echeance": "La date d'échéance du paiement"
}

2. Validation Automatique

Le système vérifie automatiquement :

  • Le format des emails et des dates.
  • La correspondance entre la date du document et la date de la session liée.
  • La correspondance entre l'email du document et celui du contact lié.

3. Export des Données

Une fois l'extraction terminée, vous pouvez exporter les données au format JSON ou CSV directement depuis l'interface d'extraction.

⚙️ Configuration

Le système nécessite :

  • Une clé API OpenAI configurée dans les paramètres de l'utilisateur.
  • Un bucket Cloudflare R2 (ou S3) fonctionnel pour le stockage des artifacts.

🧪 Tests

Les services sont couverts par des tests unitaires (vitest) :

  • npm run test:backend pour lancer les tests.
  • Fichiers : pdf.service.spec.ts, document-validation.service.spec.ts.