AI-integratie · oefening 6 van 10

Provider-neutraal AI-verzoek bouwen

Stuur alleen gecontroleerde, gerubriceerde financiële data naar een nep-AI-gateway en kies de provider via configuratie.

Waarom dit nodig is

Een goede integratie zit niet onnodig vast aan Claude, OpenAI, Copilot of een lokaal model. De businessdata en het gewenste outputschema blijven hetzelfde.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

Pas nu wordt AI toegevoegd. De workflow stuurt geen ruwe boekhouding, maar een gecontroleerde en minimaal noodzakelijke dataset met een expliciet gewenst outputschema.

Wat gebeurt er technisch?

  • De HTTP POST-body is het contract met de AI-gateway.
  • Providerkeuze wordt als configuratie meegestuurd.
  • sourceChecks bewijzen welke controles vóór de AI-call zijn uitgevoerd.
  • requestedOutput begrenst wat het model moet teruggeven.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Gebruik alleen gecontroleerde statements.

Waarom?
AI mag geen onbetrouwbare of nog niet gerubriceerde brondata ontvangen alsof die definitief is.
Wat moet dit opleveren?
De request bevat balans, resultaat en geslaagde sourceChecks.
2

Bouw een compacte JSON-body.

Waarom?
Gestructureerde invoer is beter te valideren, goedkoper te versturen en minder ambigu dan een lange vrije prompt.
Wat moet dit opleveren?
Iedere waarde heeft een vaste veldnaam en datatype.
3

Maak provider configureerbaar.

Waarom?
Werkgevers kunnen vanwege prijs, privacy of beleid een andere leverancier kiezen zonder de financiële logica opnieuw te bouwen.
Wat moet dit opleveren?
Dezelfde payload werkt via meerdere toegestane providers.
4

Vraag vaste outputvelden.

Waarom?
De volgende workflowstappen moeten antwoorden machinaal kunnen parsen en controleren.
Wat moet dit opleveren?
De response bevat summary, notes en warnings in JSON.
5

Minimaliseer de meegestuurde gegevens.

Waarom?
Voor toelichtingen zijn meestal geen persoonsgegevens, factuurteksten of volledige mutatieregels nodig.
Wat moet dit opleveren?
De request bevat alleen doelgebonden financiële informatie.

Wat gaat er mis als je dit overslaat?

Ruwe data of vrije prompts vergroten privacyrisico, kosten en de kans op onvoorspelbare output. Hardcoding van één provider maakt de oplossing bovendien moeilijk vervangbaar.

POST

PowerLab-endpoint

Dit endpoint bootst het deel na dat later door Exact Online, een AI-provider of de documentservice wordt geleverd. Test het eerst los, zodat je begrijpt welke invoer en uitvoer de workflow verwerkt.

https://powerlab.rmeijer.eu/api/ai/v1/annual-report
De sleutel wordt alleen in localStorage van deze browser gezet. In n8n gebruik je de vooraf ingestelde credential PowerLab API.

Voorbeeldbody

{
  "administration": {
    "id": "demo-bv",
    "name": "Demo Handelsbedrijf BV"
  },
  "currency": "EUR",
  "financialYear": 2025,
  "provider": "claude",
  "requestedOutput": {
    "accountingNotes": true,
    "managementSummary": true,
    "warnings": true
  },
  "sourceChecks": {
    "balanced": true,
    "difference": 0
  },
  "statements": {
    "balanceSheet": {
      "assets": 75000,
      "equity": 55000,
      "liabilities": 20000
    },
    "profitAndLoss": {
      "expenses": 70000,
      "result": 25000,
      "revenue": 95000
    }
  }
}

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.

  1. Welke gegevens heeft het model echt nodig om een toelichting te schrijven?
  2. Wat blijft hetzelfde wanneer je Claude vervangt door Azure OpenAI?
  3. Waarom sturen we sourceChecks mee maar laten we AI die controles niet uitvoeren?

Klaar wanneer

De API retourneert een conceptobject met provider, status, summary, notes, sourceChecks en warnings.