Wat gebeurt er technisch?
- scenario=hallucination verandert bewust het resultaat.
- scenario=invalid-json levert een kapotte JSON-response.
- scenario=rate-limit retourneert 429 met Retry-After.
- flaky retourneert eerst 503 en daarna succes.
Bouwstappen met uitleg
Parse de response en controleer verplichte velden.
- Waarom?
- Een succesvolle HTTP-call kan nog steeds inhoudelijk onbruikbare output bevatten.
- Wat moet dit opleveren?
- Een validOutput-boolean en foutlijst.
Vergelijk returnedResult met sourceResult.
- Waarom?
- De AI mag geen enkel financieel bronbedrag wijzigen of toevoegen.
- Wat moet dit opleveren?
- amountsMatch moet true zijn.
Bouw retries voor 429, 503 en time-out, maar niet voor schemafouten.
- Waarom?
- Tijdelijke storingen kunnen herstellen; inhoudelijk foute data wordt niet beter door dezelfde call eindeloos te herhalen.
- Wat moet dit opleveren?
- Verschillende foutpaden per foutsoort.
Gebruik Configure run after-achtige foutscopes.
- Waarom?
- Ook bij falen moeten status, division, boekjaar en foutmelding in een auditrecord terechtkomen.
- Wat moet dit opleveren?
- Een centraal failure-object.
Wat gaat er mis als je dit overslaat?
Een ongeldige of verzonnen AI-response kan zonder waarschuwing in het document belanden, of de flow kan eindeloos blijven retryen.
PowerLab-endpoint
Dit endpoint bootst het relevante deel van Exact Online, de AI-provider of de documentservice na. De /api/v1-routes gebruiken de Division-parameter en Exact-achtige paginering, maar PowerLab is geen volledige Exact-emulator.
https://powerlab.rmeijer.eu/api/ai/v1/annual-report?scenario=hallucination
Kies in de HTTP Request-node de opgeslagen Header Auth-credential PowerLab API. De sleutel hoeft je broertje niet te zien of in de workflow te plakken.
Voorbeeldbody
{
"administration": {
"division": 101001,
"name": "Noordzee Handel BV"
},
"financialYear": 2025,
"provider": "claude",
"requestedOutput": {
"warnings": true
},
"sourceChecks": {
"balanced": true,
"sourceResult": 130000,
"yearClosed": true
},
"statements": {
"profitAndLoss": {
"result": 130000
}
}
}
Extra endpoints en scenario’s
https://powerlab.rmeijer.eu/api/ai/v1/annual-report?scenario=invalid-jsonhttps://powerlab.rmeijer.eu/api/ai/v1/annual-report?scenario=rate-limithttps://powerlab.rmeijer.eu/api/failures/flaky?scenario=annual-report&failures=2https://powerlab.rmeijer.eu/api/failures/timeout?seconds=10
Varianten om zelf te proberen
De bouwstappen hierboven zijn één mogelijke route, geen verplichte oplossing. Als jouw workflow hetzelfde resultaat veilig bereikt, is dat prima.
- normal: accepteer.
- hallucination: block/review.
- invalid-json: block/review.
- rate-limit: retry volgens policy.
- Gebruik verschillende targetDivisions zodat foutafhandeling niet aan één klant hangt.
Maak een errorClass zoals transient, data-quality, ai-validation en permanent. Laat de retrystrategie afhangen van de klasse.
Kun je uitleggen waarom?
Beantwoord deze vragen in je eigen woorden voordat je de oefening afrondt. Het doel is niet alleen de juiste nodes plaatsen, maar de ontwerpkeuzes kunnen verdedigen.
- Welke fouten zijn retrybaar?
- Waarom retry je geen hallucinerend bedrag?
- Welke gegevens horen in een foutauditrecord?
Klaar wanneer
De flow accepteert normal, blokkeert hallucination en invalid-json, en herstelt gecontroleerd van tijdelijke fouten.