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.

json
{
 "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 :

bash
shasum -a 256 2026-09-invoice-po-matching.zip
# 559ce436f28746c1baaa4974eef404da61046ed7e9e3ebdd2bb8272b4824c314

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). 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.
bibtex
@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.