Extraction pipeline · POST /extractions
Document verwerkenEen PDF met een order, factuur of pakbon gaat erin; kopgegevens, klantgegevens en orderregels komen eruit als JSON. Iedere waarde wijst terug naar zijn plek op de pagina.
Order-PDF
- order.pdf · 1–200 p
- X-Api-Key → clientId
- callbackUrl (opt.)
met tekstlaag
- 1. Inlezentekstlaag · cache
- SHA-256-cache
- Woorden + posities
- Pagina's parallel
- 0,2–1 s
- 2. Herkennenklant · sjabloon
- Sleutel → clientId
- Sjablonen laden
- Afzender herkennen
- Geen? Nu leren
- 3. Extraherensjabloon · taalmodel
- Sjabloon: < 1 s
- Anders: taalmodel
- Waarden uit de PDF
- ≤ 16 tegelijk
- 4. Controlerenafstemmen · bron
- Σ regels = totaal
- Aantal × prijs
- Restregel = gat
- Waarde → bron
Gecontroleerd
Alle controles geslaagd
kop + orderregels
bron per waarde
sjabloonversie · route
Ieder document verbetert het sjabloon — per clientId, met versies
- Gat: restregel of Σ ≠ totaal
- Taalmodel leest mee
- Proefperiode: 3× gelijk
- Regressietest · alle voorbeelden
- Sjabloon bijgewerkt
- vN+1 actief
Controle hoort in je eigen proces. Geslaagde controles betekenen dat de bedragen kloppen met het document, niet dat iedere waarde inhoudelijk juist is. Je applicatie beslist wat er met het resultaat gebeurt.
Document verwerken · één PDF per aanvraag
Lever één PDF aan en volg de stappen terwijl de API leest, controleert en leert.
- Inlezenwacht
- Herkennenwacht
- Extraherenwacht
- Controlerenwacht
- Lerenwacht
Voortgang
Nog geen verwerking gestart.
Serverlog · berichten van de server, onvertaald
Bij verbindingsverlies loopt de verwerking op de server door. Het laatste extractie-ID blijft in dit tabblad bewaard, zonder documentinhoud.
Bestaande extractie volgen
Resultaat & controle
Kopgegevens
Controles
Orderregels
Restregels
API gebruiken · X-Api-Key · JSON
Je app stuurt een PDF en krijgt het resultaat direct terug als het snel klaar is, of volgt de verwerking op de achtergrond. Gebruik per app een eigen sleutel; die bepaalt ook welke sjablonen de app ziet.
Endpoints
- POST/extractions
- GET/extractions/{id}
- GET/extractions/{id}/events
- GET/templates
- GET/clients
- POST/clients
- GET/templates/{id}/versions
- POST/templates/{id}/rollback
- DELETE/templates/{id}
X-Api-Key → SHA-256 → clientId · één app per sleutel · de webinterface kiest een klant op naam
200 of 202
Klaar binnen 15 seconden (bekende afzender): 200 met het resultaat. Anders 202 met statusUrl en eventsUrl; met Prefer: respond-async altijd 202.
Na de eerste verwerking kan het sjabloon nog verbeteren en het document opnieuw worden gelezen: revision stijgt. Wacht op finished: true of gebruik een callbackUrl.
Bewaar je sleutel op je server. De API bewaart alleen de SHA-256-hash. De voorbeelden voeren niets uit en bevatten geen echte sleutels. Benodigd: curl en jq; sleutel in EXTRACTION_API_KEY, adres .
Swagger-aanvragen verwerken echte documenten. Een onbekende afzender gebruikt het taalmodel op de gedeelde Aiden-gateway.
Resultaat & controle · wat je terugkrijgt
Een resultaat bevat de kopgegevens, alle regels en de controles. Iedere regel verwijst naar pagina en positie, zodat je altijd terug kunt naar de bron.
header
Documentsoort, nummer, datum, valuta, leverancier, klant en de totalen (net, vat, gross). Een veld dat niet op het document staat blijft null.
lines[]
Artikelcode, omschrijving, hoeveelheid, eenheid, prijs, prijseenheid (priceUnit, bijvoorbeeld per 100) en regelbedrag. source geeft pagina, regel en de vakjes van de afzonderlijke waarden.
path · timings
template (sjabloon, snel), llm (taalmodel) of mixed (sjabloon met aanvulling of controle door het taalmodel), met de duur per stap.
Controles maken twijfel zichtbaar
validation.status is passed of failed; validation.checks noemt iedere controle met uitkomst, zoals Σ regels = documenttotaal en aantal × prijs = bedrag. validation.residue bevat tekst die in geen veld is gebruikt: een restregel met gap: true bevat cijfers of een gemiste waarde en verdient aandacht.
Status
running- De verwerking loopt. Volg
eventsUrlof vraag de status opnieuw op. completed- Er is een resultaat. Kijk naar
validation.status. finished: true- Ook het leren is klaar; er komen geen revisies meer.
failed- Mislukt. Lees
errorvoordat je het document opnieuw aanbiedt.
Ondersteund
- Bestanden
- PDF met tekstlaag; scans nog niet
- Per aanvraag
- Eén PDF, maximaal 50 MB
- Voortgang
- Server-sent events, polling of callback
- Bewaren
- Extracties in het geheugen (weg na een herstart); klanten en sjablonen in MongoDB
Fouten
- 400
- Geen PDF, leeg of te groot, of een niet-toegestane
callbackUrl - 401
- Sleutel of klant ontbreekt of is ongeldig
- 404
- Extractie of sjabloon bestaat niet (meer) voor deze sleutel
- 500
- Verwerking mislukt; zie
detail
Sjablonen · per clientId, met versies
Een sjabloon beschrijft per afzender welke kolom wat bevat. Hier zie je de sjablonen van een klant, hun versies en hoe vaak het taalmodel ze al heeft bevestigd.
Proefperiode
Een nieuw sjabloon leest de eerste documenten samen met het taalmodel. Na drie opeenvolgende overeenkomsten werkt het zelfstandig, in milliseconden en zonder GPU. Bij een verschil wint het taalmodel en wordt het sjabloon verbeterd.
Terugzetten activeert een eerdere versie. Verwijderen wist het sjabloon met zijn voorbeelden; het volgende document van die afzender leert opnieuw.