10 juni 2026
De verborgen dataflow achter een simpele AI-vraag
Iemand typt een vraag in een AI-chat: "Kun je deze offerte herschrijven voor een nieuwe klant?" en plakt de hele offerte erbij. Drie seconden later staat er een keurig antwoord. Voor de gebruiker is dat het hele verhaal. Vraag erin, antwoord eruit.
Voor de organisatie is dat pas het begin. Tussen het indrukken van enter en het verschijnen van het antwoord zit een complete dataflow, verspreid over systemen, partijen en vaak meerdere landen. De gebruiker ziet alleen het antwoord. De organisatie moet de hele dataflow begrijpen.
Dat is geen theoretisch punt. Overal worden nu AI-beleid en leverancierscontracten geschreven, mede door de AI Act en de AVG. Maar je kunt geen goed beleid maken over iets dat je niet kunt zien. Daarom loop ik de route van zo'n simpele vraag een keer helemaal af.
Stap 1: de prompt is groter dan je vraag
Wat naar het model gaat, is niet alleen jouw zin. De prompt die het systeem opbouwt, bestaat meestal uit een systeemprompt (instructies van de leverancier of je eigen organisatie), de eerdere berichten in het gesprek, soms een gebruikersprofiel of "memory" met dingen die de tool over je heeft onthouden, en pas dan jouw vraag. Plak je een offerte mee, dan gaan ook de klantnaam, prijzen en voorwaarden mee.
Dat pakket wordt omgezet naar tokens, kleine stukjes tekst waarin het model rekent. Een onschuldige vraag van tien woorden kan zo een verzoek van duizenden tokens worden, vol context die de gebruiker zich niet bewust meestuurt. Wie wil weten welke data een AI-tool verwerkt, moet dus niet naar het invoerveld kijken, maar naar wat er werkelijk in het verzoek zit.
Stap 2: documenten worden geknipt en omgerekend
Upload je een document, dan gebeurt er nog iets extra's. Het bestand wordt geparsed (tekst eruit gehaald), in stukken geknipt (chunks) en vaak omgezet naar embeddings. Een embedding is geen samenvatting. Het is een rij getallen die de betekenis van een stuk tekst een plek geeft op een soort betekeniskaart. Twee zinnen met andere woorden kunnen daar toch dicht bij elkaar liggen. Dat is precies wat zoeken in bedrijfsdocumenten mogelijk maakt: de techniek achter RAG.
Maar die embeddings staan ergens. Meestal in een vector database, en dat is een ander systeem dan waar het originele document staat. Soms zelfs bij een andere partij. En hier komt een vraag die bijna niemand stelt: als je het document verwijdert, verdwijnen de chunks en embeddings dan ook? In slordig gebouwde systemen niet. Dan is het document weg, maar leeft de inhoud door in een database die niemand meer op het netvlies heeft.
Stap 3: onderweg naar het model
Daarna vertrekt het verzoek naar de modelprovider. Soms direct, soms via een gateway of LLM-router die bepaalt welk model het verzoek krijgt. Handig voor kosten en betrouwbaarheid, maar het is wel een extra partij die je prompts ziet en mogelijk logt.
Het transport zelf is versleuteld via TLS. Dat beschermt de data onderweg, maar zegt niets over wat er op de bestemming gebeurt. De bestemming is een datacenter, en de regio daarvan staat in je contract of instellingen. Let op het verschil: data residency betekent dat de data fysiek in een bepaalde regio staat. Het betekent niet automatisch dat alleen mensen in die regio erbij kunnen. Wie toegang heeft, hangt af van de leverancier, de moedermaatschappij en de wetgeving waar die onder valt. Dit is geen juridisch advies, maar wel een technische realiteit.
Stap 4: GPU's, batching en caches
In dat datacenter komt je prompt terecht op GPU's. Het model staat geladen in VRAM, het werkgeheugen van zo'n kaart, en rekent token voor token een antwoord uit. Om dat betaalbaar te houden, gebruiken providers batching: meerdere verzoeken van verschillende klanten worden tegelijk door dezelfde hardware verwerkt. Jouw offerte deelt op dat moment dus rekencapaciteit met de prompts van vreemden. Bij een serieuze provider is dat netjes gescheiden, maar het is goed om te beseffen dat "de cloud" hier heel concreet wordt: gedeelde machines in een hal.
Daarnaast bestaat er caching. Tijdens het genereren houdt het model tussenresultaten bij (de KV-cache), en veel providers bieden prompt caching aan: terugkerende delen van een prompt, zoals een lange systeemprompt of een vast document, worden tijdelijk warm gehouden zodat het volgende verzoek sneller en goedkoper is. Technisch slim. Maar het betekent ook dat delen van jouw invoer even ergens blijven hangen, buiten je eigen zicht. Niet per se onveilig, wel een plek in de dataflow die je moet kennen.
Stap 5: het antwoord, en wat er achterblijft
Het antwoord stroomt terug naar je scherm en daarmee lijkt het klaar. Alleen: onderweg zijn er kopieën en sporen ontstaan. De provider logt verzoeken, vaak tijdelijk, bijvoorbeeld voor misbruikdetectie. De gateway logt. Je eigen applicatie logt, voor debugging en monitoring. De chatgeschiedenis wordt opgeslagen zodat je het gesprek later kunt teruglezen. En soms kijkt er nog een analytics-tool mee in de frontend.
Hier zit ook een misvatting die ik vaak tegenkom: "ze trainen niet op onze data, dus het zit goed." Trainen en loggen zijn twee verschillende dingen. Een leverancier kan oprecht beloven dat je data niet in een volgend model belandt, terwijl je prompts wel dertig dagen in logs staan. Voor een privacy- of securitybeoordeling telt allebei.
Een voorbeeld: het advocatenkantoor
Stel, een medewerker van een advocatenkantoor uploadt een conceptdagvaarding naar een gratis AI-chatdienst en vraagt om een samenvatting. Tel even mee waar die inhoud nu staat of heeft gestaan: in de browser van de medewerker, in de frontend van de tool, in de bestandsopslag van de dienst, als chunks en embeddings in een vector database, in de prompt richting de modelprovider, in de logs van die provider, in de opgeslagen chatgeschiedenis en mogelijk in een cache. Dat zijn zomaar acht plekken, na een handeling van tien seconden.
En omdat het een gratis account is, gelden waarschijnlijk de consumentenvoorwaarden, niet de zakelijke. Dat is het echte risico van Shadow AI: niet dat medewerkers AI gebruiken, maar dat de dataflow buiten elk contract en elke beoordeling om loopt.
Waar het technisch misgaat
De problemen zitten zelden in het model zelf. Ze zitten in de randen van de dataflow:
- Verwijderen dat niet doorwerkt: het document is weg, de embeddings en logs niet.
- Logs in een andere regio dan de inference, terwijl het contract alleen over de inference ging.
- Subverwerkers die niemand heeft opgemerkt: de gateway, de vector database, de monitoring-tool.
- Rechten die niet meereizen: een document dat intern afgeschermd was, is via de AI-zoeklaag ineens voor iedereen vindbaar.
- Een demo-opzet die productie wordt, inclusief de tijdelijke keuzes die nooit zijn herzien.
Dit klinkt simpel, maar in productie wordt het interessant. Een demo hoeft alleen een goed antwoord te geven. Een productiesysteem moet ook kunnen uitleggen waar elke byte is geweest.
Een denkmodel: volg de data in vijf stappen
Wie dit voor de eigen organisatie wil snappen, kan elke AI-toepassing langs vijf vragen leggen:
- Invoer: wat gaat er werkelijk mee in de prompt, naast de zichtbare vraag?
- Verrijking: worden documenten geknipt en omgezet naar embeddings, en waar staan die?
- Transport en verwerking: welke partijen zitten er tussen gebruiker en GPU, en in welke regio's?
- Opslag: wat wordt er gelogd, gecachet en bewaard, hoe lang, en door wie?
- Restanten: wat gebeurt er bij verwijderen, en werkt dat door in alle kopieën?
Vijf vragen, een middag werk per toepassing. En je hebt direct het materiaal dat je nodig hebt voor verwerkersovereenkomsten, een DPIA of de gesprekken die de AI Act van organisaties gaat vragen.
Tot slot
Niets hiervan is een reden om AI niet te gebruiken. Het is een reden om AI te behandelen als wat het is: een keten van systemen die jouw data verwerken, niet een magisch tekstvak. Bij Klai en HostYourAI is dit precies waarom ik begin met het tekenen van de dataflow voordat er ook maar een model wordt gekozen. Welke route je data aflegt, bepaalt welke leverancier, regio en architectuur passen, niet andersom.
Als je AI veilig wilt inzetten, begin dan met de dataflow. Het antwoord op het scherm is het kleinste deel van wat er gebeurt.
↘︎ ALLE ARTIKELEN
- Waarom Europa eigen AI-modellen moet ontwikkelen
- De verborgen dataflow achter een simpele AI-vraag
- RAG begrijpelijk uitgelegd
- Het verschil tussen data residency en echte data-soevereiniteit
- Shadow AI: het datalek dat al gebeurd is
- Van AI-demo naar productie
- Embeddings en vector databases: de kopie van je bedrijfskennis waar niemand het over heeft
- AI-geletterdheid: waarom tooling zonder begrip een risico is
- Hoe je een open-source model host
- Agents, tool permissions en prompt injection: als AI niet alleen praat maar ook doet
- Waarom data in Europa houden belangrijk kan zijn
- Model gateways en LLM-routers, de verkeerstoren van je AI-landschap
- De AI Act is geen beleidsstuk, het is een technisch project
- Bedrijfskennis veilig aan AI koppelen: wie wat mag zien geldt ook voor de assistent
- GPU-infra zonder mist: VRAM, batching, latency en wat AI echt kost
- Observability, logs en audit trails voor AI, kun je terugzien wat er gebeurde?
- OpenAI-compatible APIs, de stekker die overal in past
- Self-hosting, Europese cloud en vendor lock-in, waar zit je nou echt vast?
- Use-case: host je eigen model in Europa
- One man company, hoe ik in mijn eentje bouw wat eerder een team vroeg
- Reverse engineering, bouw een compleet softwarepakket na in een dag
- Use-case: je complete boekhouding laten doen door een agent
- Een supervisor-agent voor al mijn projecten, een kopie van mezelf
- DeepGov, waarom honderden gemeenten niet elk hun eigen AI hoeven te bouwen
- The age of open source: de standaardkeuze voor AI kantelt
- Je moet het kunnen bedenken, AI werkt vooral als je het grotere plaatje ziet
- Gebruiken we over twee jaar nog wel een scherm?