Gestructureerde extractie met LLM's: wat het oplost
Veel operationele teams typen nog steeds data uit documenten over in systemen: inkoopfacturen in het ERP, aanvraagformulieren in het CRM, pakbonnen in het warehousesysteem. Extractietools op basis van templates werken tot een leverancier zijn lay-out verandert. Taalmodellen, vooral modellen die afbeeldingen van pagina's kunnen lezen, halen velden uit lay-outs die ze nog nooit hebben gezien.
Deze gids is voor operationele en financiële leidinggevenden die de instroom van documenten automatiseren, en voor de engineers die dat bouwen. Een model JSON laten teruggeven is makkelijk. Wil je data die je kunt boeken zonder elk document te controleren, dan heb je een strikt schema nodig, plus validatie, signalen voor zekerheid en een controlewachtrij voor al het andere.
OCR of vision-modellen
De eerste ontwerpkeuze is hoe het model het document ziet.
| Aanpak | Hoe het werkt | Sterke punten | Zwakke punten |
|---|---|---|---|
| Tekstlaag | Lees de ingebedde tekst van een digitale PDF | Snel, goedkoop, exacte tekens | Scans hebben geen tekstlaag; tabellen en kolommen kunnen door elkaar raken |
| Eerst OCR, dan LLM | OCR maakt tekst, vaak met posities, en de LLM haalt de velden eruit | Werkt op scans; posities helpen bij markeren en audits | OCR-fouten gaan mee naar de volgende stappen; complexe lay-outs verliezen hun structuur |
| Vision-model | Het model leest de afbeeldingen van de pagina's direct | Begrijpt lay-out, tabellen, stempels en handschrift in hun context | Hogere kosten per pagina; lange getallen moet je controleren |
| Gecombineerd | Een vision-model haalt de velden eruit, en de tekstlaag of OCR bevestigt de waarden | Begrip van de lay-out, met controles op het niveau van tekens | Meer onderdelen die kunnen haperen |
Voor facturen en formulieren combineren we ze meestal. Een model dat afbeeldingen kan lezen haalt de velden eruit. Is er een tekstlaag of OCR-output, dan controleren we of belangrijke waarden zoals IBAN's, factuurnummers en totalen daarin voorkomen. Klopt dat niet, dan gaat het document ter controle naar een medewerker.
Leg de output vast in een schema
Beschrijf precies wat je wilt in een getypeerd schema. Met pydantic maakt dezelfde class het JSON-schema dat je naar het model stuurt, en controleert die class ook wat er terugkomt. Definieer een tool en dwing het model om die aan te roepen, dan volgt de output dat schema:
Een paar gewoontes bij schema's verbeteren de nauwkeurigheid:
- Gebruik precieze types:
date,Decimalvoor bedragen en enums voor bekende waarden zoals valuta of documenttype. - Maak velden alleen optioneel als documenten ze echt weglaten, en zeg het model dat het ze in dat geval leeg moet laten.
- Voeg korte veldbeschrijvingen toe bij alles wat dubbelzinnig is, zoals of een totaal inclusief btw is.
- Vraag om de brontekst of het paginanummer van belangrijke velden. Dat maakt controles en audits veel sneller.
Validatie die verder gaat dan het schema
Een schema controleert de vorm. Bedrijfsregels controleren of de inhoud klopt. Voer beide uit bij elke extractie:
- 01Rekenwerk: de factuurregels tellen op tot het nettototaal, netto plus btw is bruto, en de btw-tarieven zijn tarieven die je accepteert.
- 02Opmaak: controlegetallen van IBAN's, het formaat van btw-nummers en datums binnen een aannemelijke periode.
- 03Stamgegevens: de leverancier staat in je leveranciersbestand, de bankgegevens komen overeen met wat je hebt vastgelegd en de inkooporder staat open.
- 04Dubbele facturen: dezelfde leverancier met hetzelfde factuurnummer is nog niet eerder verwerkt.
Een mislukte validatie mag data nooit ongemerkt corrigeren. Het document gaat naar controle, met de regel die faalde erbij, zodat de beoordelaar weet waar hij moet kijken. Een gewijzigd bankrekeningnummer bij een bekende leverancier verdient extra aandacht, omdat dat een bekend fraudepatroon is.
Zekerheid zonder giswerk
Vraag je het model hoe zeker het is, dan krijg je getallen die precies lijken en slecht gekalibreerd zijn. Bouw zekerheid op uit signalen die je kunt controleren:
- Alle validaties van het schema en de bedrijfsregels slagen.
- Belangrijke waarden staan letterlijk in de OCR-output of de tekstlaag.
- Twee extractierondes, bijvoorbeeld met verschillende prompts of modellen, komen op de kritieke velden tot hetzelfde resultaat.
- Extracties voor deze leverancier en deze lay-out gingen eerder steeds goed.
Combineer deze signalen tot een routeringsbesluit per document: direct doorboeken, specifieke velden controleren of het hele document controleren. Meet het foutpercentage van direct doorgeboekte documenten met een vaste steekproef, en boek pas meer direct door als dat percentage het toelaat.
Ontwerp de controlewachtrij voor mensen
In de controlewachtrij bewaak je de nauwkeurigheid. Ontwerp hem daarom als een volwaardig product:
- Toon het document naast de uitgelezen velden, met de bron van elk veld gemarkeerd op de pagina.
- Zet velden met een waarschuwing bovenaan, met de regel die faalde of het verschil tussen rondes in gewone taal beschreven.
- Laat beoordelaars een veld in één handeling corrigeren en de rest in één keer goedkeuren.
- Leg elke correctie vast. Correcties zijn gelabelde data voor je testset en laten zien welke leveranciers of velden aandacht nodig hebben.
Met een goede wachtrij wordt controleren een snelle check van een paar gemarkeerde velden. Volg de tijd per controle en het aantal correcties per veld, zodat je ziet waar je de extractie als volgende verbetert. Voor het bredere patroon van automatische besluiten die naar mensen gaan, lees je human-in-the-loop-ontwerp voor AI-agents.
Waar je begint
- 01Verzamel een paar honderd echte documenten van verschillende leveranciers of formuliertypen, ook slechte scans.
- 02Leg voor een deel ervan de juiste waarden vast. Dat is je testset.
- 03Bepaal het schema en de bedrijfsregels samen met het team dat het werk nu doet.
- 04Bouw de extractie met validatie, en meet de nauwkeurigheid per veld.
- 05Ga live met controle op elk document, en laat groepen documenten direct doorstromen zodra je metingen dat ondersteunen.
We hebben dit patroon gebouwd voor het parsen van financiële documenten en voor factuurgoedkeuring met controles op beleid. Lees onze aanpak om te zien hoe we zulke projecten van de eerste documenten naar productie brengen.