Oefening 10 · AI-integratie

Bouw een provider-neutraal AI-verzoek

Stuur alleen gecontroleerde, gerubriceerde cijfers en een vast outputcontract naar Claude, OpenAI, Copilot of Ollama.

Waarom dit nodig is

Wanneer je workflow direct rond één provider en vrije tekst bouwt, wordt wisselen moeilijk en is de output onvoorspelbaar.

Plaats in de eindoplossing

Wat draagt deze oefening bij?

De AI schrijft conceptteksten en signaleert opvallende ontwikkelingen. De workflow blijft eigenaar van cijfers, controles en documentstructuur.

Wat gebeurt er technisch?

  • De requestbody bevat provider, administration, financialYear, sourceChecks, statements en requestedOutput.
  • Dezelfde gateway accepteert meerdere providers.
  • Persoons-, factuur- en transactiedetails worden niet meegestuurd wanneer samengevatte rubrieken voldoende zijn.
Doen én begrijpen

Bouwstappen met uitleg

Open workflow-editor
1

Bouw het AI-request uit de actuele validated context en gerubriceerde statements.

Waarom?
De AI-call mag niets weten van een vaste demo-klant.
Wat moet dit opleveren?
administration, financialYear en statements komen uit de huidige run.
2

Voeg sourceChecks toe.

Waarom?
Het model en de vervolgstappen moeten zien welke deterministische checks al gedaan zijn.
Wat moet dit opleveren?
balanced/yearClosed/sourceResult in het contract.
3

Laat aiProvider uit de runcontext de route kiezen.

Waarom?
Zo kun je dezelfde workflow met verschillende providers testen.
Wat moet dit opleveren?
claude/openai/copilot/ollama zonder vier gekopieerde flows.
4

Stuur geen transactieregels tenzij een concrete use-case dat vereist.

Waarom?
Dataminimalisatie beperkt privacyrisico, payloadgrootte en ruis.
Wat moet dit opleveren?
Een compacte requestbody met geaggregeerde cijfers.
5

Herhaal één klant-jaarcombinatie met minimaal twee providers.

Waarom?
De provider hoort verwisselbaar te zijn zonder het financiële deel opnieuw te bouwen.
Wat moet dit opleveren?
Twee AI-runs vanuit exact dezelfde gecontroleerde brondata.

Wat gaat er mis als je dit overslaat?

Het model ontvangt onnodige klantdetails, verzint structuur of maakt de workflow afhankelijk van één leverancier.

POST

PowerLab-endpoint

Test met credential in n8n

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=normal
Authenticatie

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"
  },
  "currency": "EUR",
  "financialYear": 2025,
  "provider": "claude",
  "requestedOutput": {
    "accountingNotes": true,
    "managementSummary": true,
    "warnings": true
  },
  "sourceChecks": {
    "balanced": true,
    "sourceResult": 130000,
    "yearClosed": true
  },
  "statements": {
    "balanceSheet": {
      "assets": 0,
      "equity": 0,
      "liabilities": 0
    },
    "profitAndLoss": {
      "expenses": 0,
      "result": 130000,
      "revenue": 0
    }
  }
}
Speel ermee

Varianten om zelf te proberen

Open vrije speeltuin

De bouwstappen hierboven zijn één mogelijke route, geen verplichte oplossing. Als jouw workflow hetzelfde resultaat veilig bereikt, is dat prima.

  • 101003/2025 met claude en daarna openai.
  • 101004/2024 met ollama.
  • Vergelijk alleen de tekstvelden; bronbedragen moeten gelijk blijven.
Vrije uitdaging

Maak een provider-router met één uniform intern request- en responsecontract. Provider-specifieke details horen achter die adapter.

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 data heeft AI werkelijk nodig voor een toelichting?
  2. Waarom stuur je sourceResult mee?
  3. Waarom is een provider-neutraal schema nuttig?

Klaar wanneer

Dezelfde gecontroleerde brondata kan via minimaal twee providerwaarden worden verwerkt zonder de financiële workflow te dupliceren.