Aller au contenu principal

Workers Documents - Support du Contexte

Date : 2026-01-24
Statut : ✅ Implémenté

📋 Modifications apportées

1. Types TypeScript mis à jour

Fichier : backend/src/workers/worker-doc/document.service.ts

  • DocumentRow inclut maintenant session_id et contact_id
  • Les workers peuvent maintenant accéder au contexte des documents

2. Logs améliorés

Tous les processors documentaires incluent maintenant le contexte dans les logs :

DocIngestProcessor

  • Logs de début et de completion incluent SessionID et/ou ContactID si disponibles
  • Format : ... | SessionID: abc123... | ContactID: def456...

DocOcrProcessor

  • Logs de début et de completion incluent le contexte
  • Permet de tracer facilement quel document appartient à quelle session/contact

DocExtractStructuredProcessor

  • Logs incluent le contexte pour l'extraction structurée
  • Utile pour comprendre d'où viennent les données extraites

3. Fonctionnalités existantes conservées

  • ✅ Les workers fonctionnent exactement comme avant
  • ✅ Le contexte est automatiquement disponible via documentService.findById()
  • ✅ Aucun changement de comportement, seulement amélioration des logs

🔄 Workflow complet

1. Upload document avec contexte session/contact
→ POST /documents/sessions/:id/documents
→ Document créé avec session_id ou contact_id

2. Worker doc:ingest
→ Charge document (inclut session_id/contact_id)
→ Logs incluent le contexte
→ Crée document_pages
→ Enqueue doc:ocr

3. Worker doc:ocr (par page)
→ Charge document (inclut session_id/contact_id)
→ Logs incluent le contexte
→ Exécute OCR
→ Met à jour document status = OCR_DONE

4. Worker doc:extract_structured (optionnel)
→ Charge document (inclut session_id/contact_id)
→ Logs incluent le contexte
→ Extrait données structurées
→ Met à jour document status = EXTRACTED

📊 Exemples de logs

Avant

Processing document ingest → JobID: abc123 | DocumentID: def456 | OrgID: ghi789

Après

Processing document ingest → JobID: abc123 | DocumentID: def456 | OrgID: ghi789 | SessionID: xyz012...

✅ Avantages

  1. Traçabilité : Facile de voir quel document appartient à quelle session/contact dans les logs
  2. Debugging : Plus simple de déboguer les problèmes en connaissant le contexte
  3. Monitoring : Possibilité de filtrer les logs par session/contact
  4. Pas de breaking changes : Les workers fonctionnent exactement comme avant

🚀 Prochaines améliorations possibles

  1. Extraction de pages PDF spécifiques : Actuellement traite tout le PDF (TODO dans doc-ocr.processor.ts)
  2. Notifications : Notifier la session/contact quand un document est traité
  3. Métriques : Statistiques par session/contact sur les documents traités
  4. Auto-application : Appliquer automatiquement les données extraites aux notes/tags de session

📝 Notes

  • Les workers n'ont pas besoin de connaître le contexte pour fonctionner
  • Le contexte est stocké dans la DB et accessible via les endpoints GET
  • Les logs incluent le contexte uniquement pour améliorer la traçabilité
  • Aucun changement de comportement des workers