Chaque chiffre a été reconnu. Pourtant, le sous-total se retrouve dans l'enregistrement comme montant final. Ce type d'erreur a l'air soigné : un JSON valide, des champs remplis, aucun message d'erreur en rouge. Ce qui manque se situe dans la relation entre le nombre, le libellé et la ligne du tableau.
La documentation OCR de Mistral décrit notamment du texte structuré, des formats de tableau et des coordonnées de blocs. Document Annotations peut en outre convertir des informations dans un format JSON prédéfini. Ces briques résolvent différentes parties du trajet qui mène du document à l'application.
Quatre niveaux pour un seul champ
D'abord, les caractères doivent être lus. Ensuite, l'application a besoin de leur position et de leur ordre. Après cela, elle doit reconnaître quel champ une valeur décrit. Enfin interviennent les relations factuelles : le montant final correspond-il aux lignes indiquées dans l'exemple et à la remise mentionnée ?
Une erreur à n'importe lequel de ces niveaux peut finir par produire le même nombre erroné. C'est pourquoi une sortie textuelle complète ne suffit pas, à elle seule, comme mesure de qualité. Pour une valeur importante, le chemin de retour vers l'endroit où elle a été trouvée devrait être conservé.
Il ne s'agit pas toujours d'un marquage graphique élaboré. Un identifiant de document, la page et une description de champ sans ambiguïté aident déjà. Si des coordonnées sont utilisées, elles doivent appartenir à la bonne page et au bon rendu. Un rectangle sans version de document clairement identifiée peut lui-même semer la confusion plus tard.
Créez une facture dont vous connaissez le contenu
Pour un test maîtrisable, vous concevez votre propre PDF comportant deux lignes. La ligne A contient deux unités à dix euros chacune, la ligne B une unité à quinze euros. En dessous figurent une remise de cinq euros et un montant final de trente euros. Un numéro de commande manque délibérément. Les chiffres servent uniquement d'explication technique, et non de modèle à des fins fiscales.
Avant l'extraction, notez les valeurs attendues et l'endroit où elles se trouvent. Dans une deuxième version, modifiez uniquement la mise en page : la remise et le total se trouvent désormais plus près des lignes. Vous pourrez ainsi déterminer par la suite si l'attribution s'appuie sur le libellé ou sur une position fortuite.
Laissez d'abord une voie OCR externe adaptée fournir le texte et la structure. Une extraction en aval doit produire le montant final, la devise, le numéro de commande et l'emplacement dans le document. Le numéro de commande manquant est conservé comme inconnu. Un numéro de remplacement inventé serait une erreur, même s'il remplit entièrement le format de sortie.
Une petite vérification factuelle en dehors du modèle
La relation arithmétique simple de l'exemple synthétique peut être vérifiée de manière indépendante. Pour des montants décimaux comme ceux-ci, utilisez par exemple Decimal plutôt que des valeurs binaires à virgule flottante. Cet exemple Python, que nous avons écrit, vérifie uniquement le calcul pédagogique que nous avons défini :
from decimal import Decimal
positionen = [
(Decimal("2"), Decimal("10.00")),
(Decimal("1"), Decimal("15.00")),
]
rabatt = Decimal("5.00")
ausgewiesen = Decimal("30.00")
berechnet = sum((menge * preis for menge, preis in positionen), Decimal("0")) - rabatt
assert berechnet == ausgewiesen
Une vérification arithmétique réussie montrerait seulement que les nombres utilisés ici concordent. Elle ne prouve pas que l'OCR a extrait ces nombres du bon document. C'est pourquoi la vérification arithmétique et la vérification de la source restent deux étapes différentes.
Dans une application réelle, vous devez en outre respecter les règles du type de document concerné. Les taxes, les arrondis, les devises et les cas particuliers ne peuvent pas être déduits de cette facture simplifiée. La tâche consiste ici simplement à transférer de manière traçable une attribution connue.
L'incertitude a sa place dans le contrat de transmission
Définissez explicitement ce qui se passe en cas de chiffre illisible ou de contradiction. Un enregistrement de données peut contenir la valeur, l'endroit où elle a été trouvée et un statut de clarification. Seul un transfert confirmé déclenche alors l'étape suivante prévue.
Une instruction adaptée : « N'ajoutez pas d'informations manquantes. Pour chaque montant que vous transférez, renvoyez au champ libellé correspondant. Consignez séparément les totaux contradictoires. Produisez uniquement un aperçu, pas une écriture comptable. »
Le test concret va donc au-delà de la simple lecture du PDF. Vous vérifiez séparément les caractères, la structure, la signification des champs et une relation connue. C'est précisément ce qui crée une voie exploitable vers des données qui n'ont pas seulement l'air soignées, mais qui renvoient aussi à l'original.
Sources et état
Sources à la date du 25 octobre 2026. Processeur OCR Document AI · Document Annotations.

