Jeu de données

Extraction de factures par trois modèles économiques

288 réponses brutes de modèles, 24 factures générées par script avec leur vérité terrain, quatre niveaux de dégradation. Test conduit le 2026-08-10.

Cette page décrit un jeu de données, publié en entier. C'est la matière première de notre mesure des erreurs d'extraction silencieuses : 24 factures fournisseur, quatre niveaux de dégradation du texte, trois modèles économiques, et les 288 réponses que ces modèles ont réellement rendues.

Tout ce qui figure ici vient de cette seule campagne. Rien n'est estimé.

Ce que ça mesure, et ce que ça ne prouve pas

Ça mesure une chose précisément : la fréquence à laquelle une extraction est fausse, silencieuse et plausible. Fausse, c'est-à-dire qu'au moins un des sept champs ne correspond pas à la vérité terrain. Silencieuse, c'est-à-dire que le modèle n'a rien inscrit dans le champ notes qui lui était explicitement offert. Plausible, c'est-à-dire que subtotal + tax = total_due tient encore, donc que le contrôle le moins cher ne se déclenche pas.

Ce que ça ne prouve pas, dit franchement, parce qu'un jeu de données cité sans ses limites fait plus de mal que pas de jeu de données du tout :

  • L'entrée est du texte, pas une image numérisée. Ça ne dit rien des erreurs de caractères d'un OCR, qui ne peuvent qu'aggraver le résultat.
  • Le corpus est construit par script, pas collecté. Aucune facture réelle, aucun fournisseur réel.
  • 24 factures. Un test sur 24 cas est un test sur 24 cas.
  • Une exécution par combinaison, à température 0. Un écart d'un ou deux points entre modèles n'est pas significatif ici. C'est la forme des erreurs qui tient.
  • Anglais seulement, une page par facture.
  • Trois modèles d'entrée de gamme. Rien ici ne dit ce que feraient les plus chers.

Le corpus est construit, et voici ce que ça implique

Les 24 factures ont été générées par script avec la graine fixe 20260810. C'est un échange délibéré, et il coupe dans les deux sens.

Ce qu'il apporte : la vérité terrain est connue sans discussion, et n'importe qui peut régénérer exactement le même corpus et contester notre lecture. Ce qu'il coûte : ce ne sont pas des documents réels, et les mises en page qu'un vrai fournisseur produit sont plus variées que tout ce qu'un générateur invente.

Quatre difficultés ont été insérées, chacune résolue par le document lui-même de sorte qu'une seule réponse défendable existe : un acompte déjà versé et déduit, une remise appliquée avant taxe, un symbole de devise ambigu levé en toutes lettres, et un format de date ambigu levé à la ligne suivante.

Test conduit le 2026-08-10. Cette page a été publiée le 2026-08-13. Les extractions ont été menées par la chaîne de test automatisée de ce site : le corpus, les appels aux modèles et l'analyse sont des scripts, et ils sont tous dans l'archive ci-dessous.

Chiffres bruts

Factures entièrement justes, sur 24

Modèle N1 propre N2 colonnes perdues N3 totaux mélangés N4 libellés perdus
openai/gpt-4o-mini 24/24 24/24 21/24 14/24
google/gemini-2.5-flash-lite 24/24 24/24 18/24 19/24
anthropic/claude-haiku-4.5 24/24 24/24 12/24 18/24
Tous modèles confondus 72/72 72/72 51/72 51/72

Échec silencieux

Niveau Extractions fausses Fausses sans aucun signalement Part
N1 propre 0 0 sans objet
N2 colonnes perdues 0 0 sans objet
N3 totaux mélangés 21 3 14,3 pour cent
N4 libellés perdus 21 10 47,6 pour cent

Le contrôle arithmétique, subtotal + tax = total du

Niveau Fausses rattrapées Taux de rattrapage Justes signalées à tort Taux de fausse alerte
N1 propre 0 sans objet 18 25,0 pour cent
N2 colonnes perdues 0 sans objet 18 25,0 pour cent
N3 totaux mélangés 10 47,6 pour cent 6 11,8 pour cent
N4 libellés perdus 15 71,4 pour cent 12 23,5 pour cent

Quel champ casse

Champ N1 N2 N3 N4
invoice_number, invoice_date, due_date, currency 0 0 0 0
subtotal 0 0 0 17
tax 0 0 0 3
total_due 0 0 21 10

Totaux de la campagne

Grandeur Valeur
Extractions 288
Échecs techniques 0
Réponses JSON invalides 0
Coût total des appels 0,11951 USD
Fausses, silencieuses et passant le contrôle arithmétique 8

Ce que contient l'archive

Sept fichiers, 393777 octets décompressés. L'inventaire est ici pour que vous sachiez ce que vous téléchargez avant de le télécharger.

Fichier Ce qu'il contient Taille
generer-corpus.py le générateur du corpus, graine fixe 20260810 7,2 Kio
corpus.json les 24 factures et leur vérité terrain 28,6 Kio
degrader.py les quatre niveaux de dégradation 2,6 Kio
conduire-test.py les appels aux modèles et la comparaison champ par champ 6,6 Kio
resultats-bruts.json les 288 réponses, brutes, avec la consigne employée 326,7 Kio
analyser.py le calcul de tous les chiffres de cette page 4,6 Kio
chiffres.json les chiffres calculés 8,4 Kio

Les scripts et leurs commentaires sont en français, qui est la langue de travail derrière ce site. La clé d'API est lue dans une variable d'environnement et n'apparaît dans aucun de ces fichiers.

Rejouer la mesure

Le générateur emploie une graine fixe : le corpus que vous produisez est celui que nous avons employé.

bash
unzip 2026-08-invoice-extraction.zip
cd 2026-08-invoice-extraction
python3 generer-corpus.py --sortie corpus.json
python3 conduire-test.py --corpus corpus.json --sortie resultats-bruts.json \
    --niveaux 1 2 3 4 \
    --modeles openai/gpt-4o-mini google/gemini-2.5-flash-lite anthropic/claude-haiku-4.5
python3 analyser.py --resultats resultats-bruts.json --sortie chiffres.json

Chaque réponse brute est une ligne de resultats-bruts.json, avec les champs rendus par le modèle, ceux qui correspondaient, s'il a signalé quelque chose, et si le contrôle arithmétique est passé :

json
{"modele": "openai/gpt-4o-mini", "facture": "F04", "niveau": 3,
 "json_valide": true, "nb_champs_justes": 6, "tous_les_champs_justes": false,
 "a_signale_quelque_chose": false, "controle_arithmetique_passe": true}

Vérifiez ce que vous avez téléchargé avant de lui faire confiance :

bash
shasum -a 256 2026-08-invoice-extraction.zip
# 8d8982b037ddb6b0a1c6c420375024e6d63bfc9aff8852c49c8a22766ecddd84

Comment citer ce jeu de données

Copiez l'une des deux formes ci-dessous. La référence pointe vers cette page, qui est l'adresse stable de ce jeu de données ; l'archive est ce que cette adresse sert.

citation
Think AI First (2026). Extraction de factures par trois modèles économiques, 288 réponses brutes.
Think AI First. Test conduit le 2026-08-10, publié le 2026-08-13.
https://think-ai-first.com/fr/donnees/extraction-factures-2026-08. Sous licence CC BY 4.0.
bibtex
@dataset{thinkaifirst2026factures,
  author    = {{Think AI First}},
  title     = {Extraction de factures par trois modèles économiques, 288 réponses brutes},
  year      = {2026},
  publisher = {Think AI First},
  url       = {https://think-ai-first.com/fr/donnees/extraction-factures-2026-08},
  note      = {Test conduit le 2026-08-10. Sous licence CC BY 4.0. SHA-256 de l'archive 8d8982b037ddb6b0a1c6c420375024e6d63bfc9aff8852c49c8a22766ecddd84}
}

Licence et réutilisation

Publié sous CC BY 4.0. Servez-vous-en, citez-le, contredisez-le. Si vous rejouez la mesure et obtenez autre chose, dites-le par le formulaire de contact : les corrections sont publiées sur l'article lui-même, datées.

Télécharger le jeu de données (zip, 27,8 Kio, 7 fichiers)

Les autres jeux de données publiés ici

Chacun est un test distinct, avec son corpus, ses réponses brutes et son archive.