Jeu de données
Rapprochement facture et bon de commande, quatre modèles
Les 24 factures déjà publiées ici, chacune appariée à sept bons de commande portant un écart contrôlé et un seul, jugées par quatre modèles sur 672 appels. Test conduit le 2026-09-14.
Cette page décrit un jeu de données, publié en entier. C'est la matière première derrière notre mesure du rapprochement facture et bon de commande : 168 paires de documents, 672 décisions de quatre modèles, les écarts que chaque modèle a listés, et le coût facturé pour chaque appel.
Tout ce qui est sur cette page vient de cette seule passe. Rien n'est estimé.
Ce qu'il mesure, et ce qu'il ne prouve pas
Il mesure une chose : quels écarts entre une facture et son bon de commande un modèle attrape, et lequel il laisse passer. Sept conditions, un écart à la fois, dont deux approbations légitimes pour qu'un modèle qui refuse tout ne puisse pas bien s'en sortir.
C'est le premier jeu de données publié ici où le modèle compare deux documents. Les sept précédents lui donnaient un document unique à lire.
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. Aucun scan, aucune langue étrangère, aucune mise en page exotique, aucun tampon manuscrit.
- Un écart à la fois. Les factures réelles les cumulent.
- Un seul format de bon de commande, produit par notre propre script.
- Du texte, pas du PDF. Aucune reconnaissance optique de caractères n'intervient.
- Un appel par paire, à température 0, et notre test du 2026-08-25 a établi que la température 0 ne garantit pas la répétabilité.
- Six factures sur 24 portent deux lignes de même description à des prix
unitaires différents, ce qui rend leur tableau ambigu avant tout écart introduit.
Chaque chiffre par condition est donc publié deux fois, avec et sans ces six,
dans
chiffres.json.
Les factures sont reprises, les bons de commande sont neufs
Les 24 factures et leur vérité terrain sont exactement celles publiées ici le
2026-08-13 sous le jeu de données d'extraction de factures,
générées par script à graine fixe 20260810. Elles n'ont pas été régénérées.
Ce qui est neuf, c'est le bon de commande apparié à chacune. generer-bons-de-commande.py
relit le tableau de chaque facture dans le document, puis écrit sept bons de commande
pour elle. Le tirage est graine par facture, donc la même facture reçoit toujours
le même écart et deux factures n'ont pas le même.
Les sept conditions
| Code | Écart introduit dans le bon de commande | Bonne réponse |
|---|---|---|
| C0 | aucun, la facture correspond au bon | APPROVE |
| C1 | plus d'unités facturées que commandées | HOLD |
| C2 | prix unitaire facturé supérieur au prix commandé | HOLD |
| C3 | une ligne facturée n'est pas au bon de commande | HOLD |
| C4 | livraison partielle : moins d'unités, prix justes | APPROVE |
| C5 | référence du bon fausse d'un chiffre | HOLD |
| C6 | devise du bon différente de celle de la facture | HOLD |
C4 est la condition qui sépare un modèle qui comprend d'un modèle qui refuse dès qu'un chiffre diffère.
Ce que contient l'archive
| Fichier | Ce qu'il porte |
|---|---|
PROTOCOLE.md |
La question, la sous-intention visée, les sept conditions, ce que le test ne prouve pas. Écrit avant de conduire le test. |
generer-bons-de-commande.py |
Construit les 168 paires depuis le corpus d'août. Aucun réseau, aucun hasard non graine. |
paires.json |
Les 168 paires, chacune avec le texte de sa facture, celui de son bon, sa condition et la bonne décision. |
conduire-test.py |
Le harnais : un appel par paire et par modèle, température 0, la consigne mot pour mot. |
resultats-bruts.json |
Les 672 réponses brutes, avec la décision, le motif, les écarts listés, la raison d'arrêt, les comptes de jetons et le coût facturé. |
analyser.py |
Transforme les réponses brutes en chiffres publiés, et rien d'autre. |
chiffres.json |
Les chiffres publiés, par modèle et par condition, chacun avec et sans les six factures ambiguës. |
factures-a-description-dupliquee.json |
Les six identifiants de facture dont le tableau est ambigu avant tout écart. |
Un enregistrement brut, tel qu'il est servi
Chaque ligne de resultats-bruts.json porte une décision et ce que le modèle en a
dit. Celle-ci est le cas cité dans l'article : le modèle a écrit l'écart dans
ecarts_vus, puis a approuvé quand même.
{
"modele": "openai/gpt-4o",
"paire": "F18-C1",
"condition": "C1",
"attendu": "HOLD",
"lu": true,
"json_valide": true,
"decision": "APPROVE",
"juste": false,
"motif": "The invoice matches the purchase order except for a higher quantity of packing tape, which is acceptable.",
"ecarts_vus": ["Packing tape, 48mm, pack of 6: invoiced quantity is 3, ordered quantity is 1"]
}Vérifiez ce que vous avez téléchargé avant de lui faire confiance :
shasum -a 256 2026-09-invoice-po-matching.zip
# 559ce436f28746c1baaa4974eef404da61046ed7e9e3ebdd2bb8272b4824c314Comment 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.
Think AI First (2026). Rapprochement facture et bon de commande par quatre modèles, 672 décisions brutes.
Think AI First. Test conduit le 2026-09-14, publié le 2026-09-14.
https://think-ai-first.com/fr/donnees/rapprochement-bon-de-commande-2026-09. Sous licence CC BY 4.0.@dataset{thinkaifirst2026rapprochement,
author = {{Think AI First}},
title = {Rapprochement facture et bon de commande par quatre modeles, 672 decisions brutes},
year = {2026},
publisher = {Think AI First},
url = {https://think-ai-first.com/fr/donnees/rapprochement-bon-de-commande-2026-09},
note = {Test conduit le 2026-09-14. Sous licence CC BY 4.0. Archive SHA-256 559ce436f28746c1baaa4974eef404da61046ed7e9e3ebdd2bb8272b4824c314}
}Licence et réutilisation
Publié sous CC BY 4.0. Utilisez-le, citez-le, contredisez-le. Si vous rejouez ceci 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, 64,5 Kio, 8 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 reprend les factures du premier et leur pose une question différente.
- Extraction de factures par trois modèles économiques, 288 réponses brutes, test conduit le 2026-08-10.
- Dédoublonnage de carnets de contacts par trois modèles économiques, 96 réponses brutes, test conduit le 2026-08-17.
- Extraction des actions d'un compte rendu par trois modèles économiques, 96 réponses brutes, test conduit le 2026-08-18.
- Répétabilité d'une étape LLM à température 0, 360 réponses brutes, test conduit le 2026-08-25.
- Quatre garde-fous de détection d'erreur sur 288 extractions de factures, 288 réponses brutes d'auto-vérification, test conduit le 2026-09-04.
- Prix contre justesse sur l'extraction de factures, six modèles, 864 réponses brutes avec leur coût facturé, test conduit le 2026-09-06.
- Deux garde-fous de détection d'erreur sur 368 fusions de contacts proposées, 96 réponses brutes d'auto-vérification, test conduit le 2026-09-12.