Jeu de données

Prix contre justesse en extraction de factures, six modèles

Les 24 factures déjà publiées ici, lues par six modèles formant trois paires économie et haut de gamme, avec le coût réellement facturé pour chacun des 864 appels. Test conduit le 2026-09-06.

Cette page décrit un jeu de données, publié en entier. C'est la matière première de notre mesure du prix contre la justesse en extraction de factures : 864 appels, six modèles appariés par fournisseur et par génération, le coût réellement facturé pour chaque appel, et les deux passages qu'il a fallu pour obtenir une comparaison honnête.

Tout ce qui est sur cette page vient de ce seul passage. Rien n'est estimé.

Ce qu'il mesure, et ce qu'il ne prouve PAS

Il mesure une chose : ce que la montée en gamme achète, et ce qu'elle coûte, sur une tâche que trois modèles économiques font déjà correctement. Six modèles, trois fournisseurs, trois paires. À l'intérieur d'une paire, le fournisseur et la génération sont tenus constants et seule la gamme change, si bien que l'écart ne peut pas se lire comme un écart de génération.

Le chiffre de prix ne sort pas d'une grille tarifaire. C'est le montant réellement facturé pour l'appel, lu dans la réponse de l'API, jetons de raisonnement compris. Cette distinction est tout l'objet du test : l'un des trois modèles haut de gamme coûte dix fois ce que son rapport affiché laisse croire.

Ce qu'il 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 :

  • 24 factures générées par script ne sont pas un échantillon de factures réelles. Ni scan, ni langue étrangère, ni mise en page exotique, ni tampon manuscrit.
  • Un seul appel par cas. Les taux de justesse portent une incertitude d'échantillonnage qui n'est pas mesurée ici, et notre propre test du 2026-08-25 a établi que la température 0 ne garantit pas la répétabilité.
  • Les prix des API changent. Les coûts sont ceux du 2026-09-06 et d'aucun autre jour.
  • Un sans-faute vaut 96 sur 96, pas une garantie. Un modèle a rendu toutes les factures justes sur ce corpus. C'est un fait qui porte sur 96 cas.
  • Rien ici ne dit qu'un modèle haut de gamme reste meilleur sur une autre tâche.

Le corpus est réutilisé, et voici ce que ça veut dire

Les 24 factures, leurs quatre niveaux de dégradation et leur vérité terrain sont exactement ceux publiés ici le 2026-08-13, sous le jeu de données d'extraction de factures, générés par script avec la graine fixe 20260810. Ils n'ont pas été régénérés, et la consigne envoyée aux modèles est celle d'août mot pour mot, à température 0.

Ce choix est délibéré et c'est ce qui donne un sens à la comparaison : les six modèles jugent un jeu de documents identique. Régénérer aurait mêlé l'effet de la gamme à l'effet d'un corpus différent, et aucun chiffre n'aurait séparé les deux.

Cela permet aussi à ce jeu de données de répondre à une question laissée ouverte par les précédents. La passe A rejoue le protocole d'août au jeton près, 27 jours plus tard, sur les trois modèles économiques : même verdict sur 287 des 288 cas, valeurs identiques sur 282. Le jeu de données d'août décrit encore fidèlement ce que ces modèles font.

Deux passages, et un raté conservé tel quel

Passe A, budget de sortie 700 jetons, trois modèles économiques, 288 appels. Témoin de dérive.

Passe B, budget de sortie 4000 jetons, six modèles, 576 appels. La comparaison de justesse se lit ici. Un budget de 700 jetons tronque un modèle raisonnant, ce qui aurait produit un faux résultat de justesse là où il n'y avait qu'un budget trop court.

Au premier passage B, 81 des 96 appels de claude-opus-4.5 ont échoué en HTTP 402 : le crédit restant ne couvrait pas les appels en vol. Le harnais compte un échec technique comme une extraction fausse, et le modèle semblait donc le pire des six. Ces 96 appels ont été rejoués seuls, et le modèle rend 89 sur 96.

Les deux fichiers sont dans l'archive. passeB-six-modeles-budget4000.json porte le passage raté exactement tel qu'il s'est produit, passeB-opus45-budget4000.json le rejeu, et passeB-fusionnee.json le passage valide fusionné avec sa note de fusion. Un test qui cache sa mesure ratée vaut moins qu'un test qui la montre.

Les chiffres bruts

La justesse est la part des factures dont les sept champs sont justes, sur 96 cas par modèle. Le coût est en dollars réellement facturés, ramenés à 1000 factures.

Modèle Justesse Champs justes USD / 1000 factures Jetons de raisonnement
openai/gpt-4o-mini 86,5 % 96,6 % 0,10 0
openai/gpt-4o 96,9 % 99,6 % 1,69 0
google/gemini-2.5-flash-lite 88,5 % 98,2 % 0,10 0
google/gemini-2.5-pro 100,0 % 100,0 % 11,56 956
anthropic/claude-haiku-4.5 81,2 % 97,3 % 1,06 0
anthropic/claude-opus-4.5 92,7 % 99,0 % 5,23 0

Ce que la montée en gamme achète, paire par paire.

Paire Factures sauvées sur 96 Rapport affiché Rapport facturé La facture juste en plus coûte
gpt-4o-mini vers gpt-4o +10 16,7x 17,1x 0,0153 USD
gemini-2.5-flash-lite vers gemini-2.5-pro +11 12,5x 121,7x 0,1001 USD
claude-haiku-4.5 vers claude-opus-4.5 +11 5x 4,9x 0,0364 USD

Justesse par modèle et par niveau de dégradation, 24 factures chacun.

Niveau 4o-mini 4o flash-lite 2.5-pro haiku-4.5 opus-4.5
N1 propre 100 % 100 % 100 % 100 % 100 % 100 %
N2 colonnes perdues 100 % 100 % 100 % 100 % 100 % 100 %
N3 totaux mélangés 87,5 % 91,7 % 75,0 % 100 % 50,0 % 75,0 %
N4 libellés perdus 58,3 % 95,8 % 79,2 % 100 % 75,0 % 95,8 %

La note spontanée du modèle, notée sur ses deux taux.

Modèle Rattrapage Fausse alerte Précision
openai/gpt-4o-mini 0,0 % (0/13) 0,0 % (0/83) n/a
openai/gpt-4o 66,7 % (2/3) 24,7 % (23/93) 8,0 %
google/gemini-2.5-flash-lite 100,0 % (11/11) 34,1 % (29/85) 27,5 %
google/gemini-2.5-pro n/a (0/0) 82,3 % (79/96) 0,0 %
anthropic/claude-haiku-4.5 100,0 % (18/18) 39,7 % (31/78) 36,7 %
anthropic/claude-opus-4.5 100,0 % (7/7) 49,4 % (44/89) 13,7 %

Dérive à 27 jours, passe A contre les résultats bruts d'août sur les mêmes 288 appels.

Comparaison Résultat
Même verdict, juste ou faux 287 / 288 (99,7 %)
Valeurs identiques sur les sept champs 282 / 288 (97,9 %)
Effet du budget de sortie sur les modèles économiques 285 / 288 identiques (99,0 %)

Ce que contient l'archive

Dix fichiers, 2,0 Mo décompressés. Dans l'ordre de lecture : ce qui construit le corpus, ce qui appelle les modèles, ce que ces modèles ont réellement rendu, et ce qui l'analyse. Le corpus est livré avec l'archive plutôt que référencé, pour que cette archive tienne debout seule sans aller en chercher une autre.

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.

Le rejouer

L'analyse n'appelle aucun modèle : elle se rejoue à coût nul sur les réponses brutes livrées dans l'archive. Seul conduire-test.py dépense quelque chose.

bash
unzip 2026-09-invoice-price-accuracy.zip
python3 analyser.py --passeB passeB-fusionnee.json \
    --passeA passeA-economie-budget700.json --sortie chiffres.json

Chaque réponse brute est une entrée des fichiers de passe, exactement telle que le modèle l'a rendue, avec le coût que l'API a facturé pour elle. Celle-ci est le modèle raisonnant sur une facture propre, et c'est la forme de la fausse alerte comptée dans le tableau ci-dessus : les sept champs justes, 1206 jetons de raisonnement payés, et une note qui rapporte deux faits sur le document sans affirmer qu'un champ est faux. Comptée comme un signalement, elle coûte à un humain une relecture pour rien.

json
{
 "modele": "google/gemini-2.5-pro",
 "facture": "F01",
 "niveau": 1,
 "lu": true,
 "json_valide": true,
 "tous_les_champs_justes": true,
 "jetons_raisonnement": 1206,
 "cout_usd": 0.014135,
 "note_du_modele": "The first two line items have the same description but a significant difference in unit price ($5.57 vs $144.51). The currency '$' was assumed to be USD."
}

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

bash
shasum -a 256 2026-09-invoice-price-accuracy.zip
# 80bb17e8c06d57cb4ba3e6152a9fb4bb417ec298b3ce346d2f614f81f872acbb

Comment citer ce jeu de données

Copiez l'une des deux formes ci-dessous. La référence pointe sur 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). Prix contre justesse en extraction de factures, six modèles, 864 réponses brutes avec leur coût facturé.
Think AI First. Test conduit le 2026-09-06, publié le 2026-09-07.
https://think-ai-first.com/fr/donnees/prix-justesse-factures-2026-09. Sous licence CC BY 4.0.
bibtex
@dataset{thinkaifirst2026prixjustesse,
  author    = {{Think AI First}},
  title     = {Prix contre justesse en extraction de factures, six modeles, 864 reponses brutes avec leur cout facture},
  year      = {2026},
  publisher = {Think AI First},
  url       = {https://think-ai-first.com/fr/donnees/prix-justesse-factures-2026-09},
  note      = {Test conduit le 2026-09-06. Sous licence CC BY 4.0. Somme SHA-256 de l'archive 80bb17e8c06d57cb4ba3e6152a9fb4bb417ec298b3ce346d2f614f81f872acbb}
}

Licence et réutilisation

Publié sous CC BY 4.0. Utilisez-le, citez-le, contredisez-le. Si vous le rejouez et obtenez autre chose, dites-le-nous 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, 109,8 Kio, 10 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. Celui-ci réutilise le corpus du premier et met un prix sur ce que la montée en gamme y achète.