Documentation fonctionnelle
Pipeline de la facture
Pourquoi
Un PDF de facture, tel qu'il est déposé, ne dit rien d'exploitable à une banque. Le pipeline transforme ce document en un dossier structuré, vérifié et noté — la condition pour qu'une demande de financement puisse seulement être soumise. C'est la porte d'entrée unique de toute donnée de facturation vers le reste de la plateforme.
Comment dans l'application
Chaque transition du pipeline est portée par un worker qui consomme un flux Redis dédié. Le macro-parcours canonique est UPLOADED → FILE_PREPROCESSED → OCR_DONE → FIELDS_EXTRACTED → VALIDATED → SCORED, mais l'état réel d'une facture est plus fin (une vingtaine de statuts au total, dont QUARANTINED et REJECTED), et chaque transition est vérifiée par une machine à états qui refuse tout passage non autorisé.
- Antivirus — première étape réelle, avant tout traitement du contenu : le fichier est scanné (ClamAV) ; infecté, la facture est mise en quarantaine et le pipeline s'arrête ; propre, elle passe en préparation.
- OCR — le texte est extrait du document, avec vérification d'intégrité du fichier récupéré depuis le stockage objet.
- Extraction des champs — les données structurées (montants, dates, parties) sont extraites, avec un score de qualité de donnée composite (confiance OCR, confiance d'extraction, complétude des champs clés, cohérence arithmétique HT+TVA=TTC).
- Validation et détection de fraude — les règles métier sont appliquées ; un rejet dur intervient si le score de fraude dépasse un seuil et qu'un signal grave est présent (fournisseur identique à l'acheteur, échéance antérieure à l'émission).
- Notation — une note de risque est calculée et persistée : c'est l'état terminal
SCORED, celui d'un dossier « Analysée », instruisable.
Garde-fous
- Un échec de traitement laisse le message en attente, avec relance à backoff jusqu'à un nombre limité de tentatives ; au-delà, le message part vers une file d'erreurs plutôt que de bloquer indéfiniment le flux.
- Chaque worker publie un battement de cœur régulier — une facture bloquée signale d'abord un worker arrêté, pas nécessairement une donnée corrompue.
- Chaque scan antivirus est audité et son résultat conservé comme preuve, indépendamment de la suite du traitement.
- L'état
SCOREDest aujourd'hui le terminus effectif du pipeline : il rend le dossier instruisable pour une demande de financement, mais ne produit plus, de lui-même, une annonce de marché automatique.