{"id":3442162,"date":"2026-07-29T09:55:32","date_gmt":"2026-07-29T07:55:32","guid":{"rendered":"https:\/\/datanorth.ai\/?p=3442162"},"modified":"2026-07-29T09:55:22","modified_gmt":"2026-07-29T07:55:22","slug":"llm-kosten-verlagen-prompt-caching-batching-routing","status":"publish","type":"post","link":"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing","title":{"rendered":"LLM-kosten verlagen: prompt caching, batching en routing"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Je verlaagt de kosten van een LLM-toepassing met drie technieken. Prompt caching geeft tot 90% korting op invoertokens die je herhaalt. Prompt batching geeft 50% korting op werk dat niet direct antwoord hoeft. Intelligente routing stuurt eenvoudige vragen naar goedkope modellen. Samen verlagen ze je rekening zonder dat de kwaliteit merkbaar zakt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De uitgaven aan LLM-infrastructuur groeien hard, en een groot deel daarvan is verspilling. Die zit zelden in het model zelf, maar in context die je honderd keer opnieuw laat verwerken, in achtergrondwerk dat via het dure real-time endpoint loopt, en in een frontier-model dat een simpele intentieclassificatie doet. Dit artikel behandelt de drie patronen die dat oplossen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is LLM-kostenoptimalisatie?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LLM-kostenoptimalisatie is het systematisch verlagen van rekenkosten, <a href=\"https:\/\/datanorth.ai\/nl\/blog\/tokenization-for-llms\" target=\"_blank\" rel=\"noreferrer noopener\">tokenverbruik<\/a> en latency van een <a href=\"https:\/\/datanorth.ai\/nl\/blog\/bouw-je-eigen-llm\" target=\"_blank\" rel=\"noreferrer noopener\">taalmodeltoepassing<\/a>, zonder in te leveren op de kwaliteit van de uitvoer. Commerci\u00eble API&#8217;s rekenen per miljoen tokens, met een duidelijke asymmetrie: uitvoertokens kosten meestal vijf tot acht keer zoveel als invoertokens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Optimaliseren draait om drie keuzes: hoe je je data structureert, wanneer je die laat verwerken, en welk model de vraag krijgt. Een harde tokenlimiet lost dat niet op, want die maakt je toepassing alleen minder bruikbaar. De winst zit in de uitvoering, niet in de rem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is prompt caching en hoeveel levert het op?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prompt caching slaat eerder verwerkte tekst op in het geheugen van de aanbieder, zodat een volgende aanvraag die tokens uitleest in plaats van ze opnieuw te berekenen. Stuur je dezelfde lange context vaker mee, dan betaal je die maar \u00e9\u00e9n keer vol.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hoe werkt prompt caching technisch?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bij binnenkomst controleert de aanbieder of het begin van je prompt overeenkomt met een prefix die recent is verwerkt. Die prefix bevat meestal je systeeminstructies, tooldefinities, gespreksgeschiedenis en grounding-data. Bij een match leest het systeem de opgeslagen key-value-representaties direct uit het geheugen. Aanbieders routeren op een hash van de eerste tokens, en een cache hit vereist een exacte match van die prefix.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daar volgt \u00e9\u00e9n harde ontwerpregel uit: statische inhoud staat vooraan, variabele input staat achteraan. Verander je \u00e9\u00e9n woord in het begin van je prompt, dan is de hele cache daarachter ongeldig. Zet de gebruikersvraag dus altijd als laatste blok.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wat rekenen OpenAI, Anthropic en Google?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">De drie grote aanbieders hanteren verschillende drempels en prijsmodellen. De cijfers hieronder komen uit hun documentatie en gelden voor juli 2026.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Aanbieder<\/th><th>Activering<\/th><th>Minimum<\/th><th>Korting op cache reads<\/th><th>Kosten cache writes<\/th><th>Levensduur<\/th><\/tr><\/thead><tbody><tr><td>OpenAI<\/td><td>Automatisch<\/td><td>1.024 tokens<\/td><td>90%<\/td><td>1,25x het invoertarief (GPT-5.6 en nieuwer)<\/td><td>30 minuten (GPT-5.6 en nieuwer)<\/td><\/tr><tr><td>Anthropic Claude<\/td><td>Expliciet (cache_control)<\/td><td>512 tokens (Opus 5), 1.024 (Sonnet 5), 4.096 (Haiku 4.5)<\/td><td>90%<\/td><td>1,25x bij 5 minuten, 2x bij 1 uur<\/td><td>5 minuten of 1 uur<\/td><\/tr><tr><td>Google Gemini<\/td><td>Impliciet standaard aan<\/td><td>2.048 tokens (Gemini 2.5), 4.096 (Gemini 3.5 Flash en 3.1 Pro)<\/td><td>Wisselend, niet gegarandeerd<\/td><td>Geen premie, wel opslagkosten<\/td><td>Standaard 1 uur, instelbaar<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/developers.openai.com\/api\/docs\/guides\/prompt-caching\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI<\/a><\/strong> activeert caching automatisch vanaf 1.024 tokens en rekent cached invoer af tegen een tiende van het normale tarief. Vanaf GPT-5.6 is de bewaartermijn 30 minuten en kosten cache writes 1,25x het invoertarief.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/prompt-caching\" target=\"_blank\" rel=\"noreferrer noopener\">Anthropic<\/a><\/strong> vraagt om een expliciete cache_control-markering in je blokarray. Cache reads kosten 0,1x het invoertarief, cache writes 1,25x bij de standaard van vijf minuten en 2x als je de bewaartermijn op een uur zet. Die opslag verdien je pas terug bij hergebruik binnen het venster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/ai.google.dev\/gemini-api\/docs\/caching\" target=\"_blank\" rel=\"noreferrer noopener\">Google Gemini<\/a><\/strong> heeft impliciete caching standaard aanstaan voor Gemini 2.5 en nieuwer, zonder garantie op korting. De drempel is 2.048 tokens bij Gemini 2.5 en 4.096 bij Gemini 3.5 Flash en 3.1 Pro. Wil je zekerheid, dan maak je een expliciet cache-object met een eigen Time-To-Live, mits je API dat ondersteunt. Daar hoort een kostenpost bij die de andere twee niet hebben: je betaalt voor de opslagduur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"role\": \"user\",\n  \"content\": &#091;\n    {\n      \"type\": \"text\",\n      \"text\": \"Systeeminstructies of grounding-tekst...\",\n      \"cache_control\": {\"type\": \"ephemeral\"}\n    }\n  ]\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is prompt batching en wanneer zet je het in?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prompt batching is het bundelen van meerdere aanvragen in \u00e9\u00e9n bestand dat asynchroon wordt verwerkt, meestal binnen 24 uur. Je levert real-time responsiviteit in en krijgt daar 50% korting voor terug, op zowel invoer- als uitvoertokens.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">De afweging: 50% korting tegen wachttijd<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Batching is ongeschikt voor alles waar een gebruiker op zit te wachten. Chatinterfaces, zoekfuncties en human-in-the-loop-agents vallen af. Wat overblijft is achtergrondwerk, vaak een groter deel van je verbruik dan je denkt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je stuurt de aanvragen als JSON Lines-bestand (.jsonl) naar een apart batch-endpoint. Bij de <a href=\"https:\/\/developers.openai.com\/api\/docs\/guides\/batch\" target=\"_blank\" rel=\"noreferrer noopener\">OpenAI Batch API<\/a> passen maximaal 50.000 aanvragen of 200 MB per batch. De <a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/batch-processing\" target=\"_blank\" rel=\"noreferrer noopener\">Anthropic Message Batches API<\/a> gaat tot 100.000 aanvragen of 256 MB, en de meeste batches zijn daar binnen een uur klaar. Resultaten blijven er 29 dagen beschikbaar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een tweede voordeel wordt vaak over het hoofd gezien. Batch-endpoints hebben eigen rate limits, los van je normale quota. Een zware achtergrondtaak eet dus niet je tokens per minuut op, en je productieomgeving valt niet om tijdens een grote verwerkingsronde.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Waarvoor gebruik je batching?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Documentverwerking op schaal.<\/strong> Contractarchieven doorlopen, velden uit tienduizenden facturen halen, entiteitsherkenning over een oude datastore.<\/li>\n\n\n\n<li><strong>Evaluatiepijplijnen.<\/strong> Regressietests, promptversies vergelijken tegen duizenden validatievoorbeelden, historische logs door een kwaliteitscheck halen.<\/li>\n\n\n\n<li><strong>Synthetische data genereren.<\/strong> Trainingsdata voor finetuning, gesimuleerde gebruikersinteracties, of contentvarianten voor een productcatalogus.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is intelligente LLM-routing?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Intelligente LLM-routing verdeelt binnenkomende prompts dynamisch over verschillende modellen, op basis van een automatische inschatting van complexiteit en benodigde redeneerkracht. In plaats van al je verkeer naar \u00e9\u00e9n duur model te sturen, zit er een verkeersregelaar tussen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hoe verdeelt je verkeer zich?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Routingframeworks zoals <a href=\"https:\/\/www.lmsys.org\/blog\/2024-07-01-routellm\/\" target=\"_blank\" rel=\"noreferrer noopener\">RouteLLM<\/a> en FrugalGPT laten zien dat productieverkeer uiteenvalt in duidelijke complexiteitslagen. Een grove maar bruikbare verdeling:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ongeveer 70% is eenvoudig.<\/strong> Intentieclassificatie, tekst herschrijven, trefwoorden extraheren, opzoekacties. Een klein model doet dit prima.<\/li>\n\n\n\n<li><strong>Ongeveer 20% zit in het midden.<\/strong> Context bijhouden over meerdere beurten, output volgens een strikt JSON-schema, informatie uit meerdere documenten samenvoegen.<\/li>\n\n\n\n<li><strong>Ongeveer 10% is echt complex.<\/strong> Agentische loops, code genereren, wiskundige of juridische controles.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Zonder routinglaag betaal je het frontier-tarief over die eerste 70%. RouteLLM rapporteert op MT-Bench meer dan 85% kostenreductie met behoud van 95% van de kwaliteit van GPT-4. Op MMLU en GSM8K is de winst kleiner, respectievelijk 45% en 35%. De les daaruit: hoeveel routing oplevert, hangt sterk af van je taakmix, dus meet het op je eigen verkeer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welke routeringsmethoden zijn er?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Deterministische routing<\/strong> kijkt naar metadata: het abonnement van de gebruiker, de module die de aanroep doet, of een regex in de prompt. Regelgebaseerd, voorspelbaar en snel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Semantische routing<\/strong> zet de prompt om in een vector en vergelijkt die met vooraf bepaalde clustercentra die complexiteitsklassen voorstellen. De dichtstbijzijnde klasse bepaalt het model.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Predictieve routing<\/strong> zet een klein, snel classificatiemodel in dat de vraag beoordeelt voordat die wordt uitgevoerd. Leveranciers zoals Orq.ai melden hiervoor minder dan 40 milliseconden extra latency per aanvraag. Die vertraging valt in de praktijk vaak weg tegen de snellere time-to-first-token van het kleinere model dat hij kiest.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">De kosten-kwaliteitsgrens<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Routing is een schuifknop, geen schakelaar: je stelt zelf in hoe agressief je op kosten stuurt. De cijfers hieronder komen van leverancier Orq.ai en verdienen validatie op je eigen workload, maar de vorm van de curve klopt.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Aandeel premium model<\/th><th>Behouden kwaliteit<\/th><th>Kostenreductie<\/th><\/tr><\/thead><tbody><tr><td>75%<\/td><td>ongeveer 99,5%<\/td><td>ongeveer 25%<\/td><\/tr><tr><td>50%<\/td><td>ongeveer 98%<\/td><td>ongeveer 50%<\/td><\/tr><tr><td>25%<\/td><td>ongeveer 95%<\/td><td>ongeveer 70%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Het middelste punt is voor de meeste commerci\u00eble toepassingen de beste ruil. Je halveert je modelkosten en levert ongeveer twee procentpunt kwaliteit in.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Centraal beheer via een AI-gateway<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Routingregels wil je niet in tien microservices hardcoderen. Daarvoor bestaan <a href=\"https:\/\/datanorth.ai\/nl\/blog\/ai-gateways-hoe-intelligente-llm-routing-de-kosten-met-40-verlaagt\" target=\"_blank\" rel=\"noreferrer noopener\">AI-gateways<\/a>: een centrale laag die al je LLM-verkeer onderschept. Open source opties zoals <a href=\"https:\/\/github.com\/BerriAI\/litellm\" target=\"_blank\" rel=\"noreferrer noopener\">LiteLLM<\/a> en <a href=\"https:\/\/www.helicone.ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">Helicone<\/a> bieden logging, virtuele API-sleutels en harde budgetplafonds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het belangrijkste is de fallback-logica. Geeft een goedkoop model een lage confidence-score of een rate-limit-fout, dan escaleert de gateway dezelfde aanvraag naar een zwaarder model. Zo ziet de gebruiker nooit een mislukte aanvraag.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prompt caching, batching en routing vergeleken<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Elke techniek pakt een andere vorm van verspilling aan. Ze bijten elkaar niet.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Dimensie<\/th><th>Prompt caching<\/th><th>Promptcaching<\/th><th>Intelligente routing<\/th><\/tr><\/thead><tbody><tr><td>Gemiddelde besparing<\/td><td>50% tot 90% op invoertokens<\/td><td>50% op alle tokens<\/td><td>25% tot 70% op totale uitgaven<\/td><\/tr><tr><td>Effect op latency<\/td><td>Tot 80% sneller bij een cache hit<\/td><td>Tot 24 uur vertraging<\/td><td>Ongeveer 40 ms extra<\/td><\/tr><tr><td>Waar je het bouwt<\/td><td>In de promptstructuur en API-aanroep<\/td><td>In asynchrone achtergrondscripts<\/td><td>In je gateway of infrastructuurlaag<\/td><\/tr><tr><td>Belangrijkste beperking<\/td><td>Vereist een exacte prefix-match<\/td><td>Onbruikbaar voor real-time<\/td><td>Vraagt continue bewaking van kwaliteitsdrift<\/td><\/tr><tr><td>Beste toepassing<\/td><td>Lange systeemprompts, chat, RAG<\/td><td>Bulkverwerking, evaluaties, loganalyse<\/td><td>Endpoints met gemengde complexiteit<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Hoe combineer je de drie in \u00e9\u00e9n architectuur?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Behandel ze niet als keuzemenu, maar als vier filters die elke aanvraag achter elkaar doorloopt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De aanvraag komt eerst langs een <strong>semantische cache<\/strong>. Die verschilt van prompt caching: in plaats van een exacte tokenprefix matcht hij op betekenis. Elke vraag wordt omgezet in een vector en vergeleken met eerdere vragen, zodat een anders geformuleerde vraag met dezelfde strekking alsnog een treffer geeft. Boven een ingestelde drempel krijgt de gebruiker het opgeslagen antwoord en gaat er geen modelaanroep uit, wat zowel invoer- als uitvoerkosten scheelt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is er geen treffer, dan volgt de vraag: <strong>moet dit direct?<\/strong> Zo nee, dan gaat de aanvraag naar de wachtrij voor de Batch API en verdien je 50%.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moet het wel direct, dan bepaalt de <strong>router<\/strong> het goedkoopste model dat de taak aankan. En vlak voor verzending zorgt je <strong>promptopbouw<\/strong> ervoor dat statische blokken vooraan staan, zodat de volgende identieke aanroep alsnog de caching-korting pakt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/07\/combineren-van-caching-batching-en-routing.png\" alt=\"combineren van caching, batching en routing\" class=\"wp-image-3442170\" srcset=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/07\/combineren-van-caching-batching-en-routing.png 1024w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/07\/combineren-van-caching-batching-en-routing-300x142.png 300w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/07\/combineren-van-caching-batching-en-routing-768x365.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Elke aanvraag doorloopt vier filters, van goedkoopst naar duurst.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wil je weten wat dit voor jouw verbruik betekent? Een <a href=\"https:\/\/datanorth.ai\/nl\/dienst\/assessment\/kunstmatige-intelligentie\">AI-assessment<\/a> brengt je huidige uitgaven in kaart, en tijdens een <a href=\"https:\/\/datanorth.ai\/nl\/dienst\/live-demonstratie\/kunstmatige-intelligentie\">AI-demo<\/a> zie je deze lagen in werking. Voor engineeringteams is een <a href=\"https:\/\/datanorth.ai\/nl\/dienst\/training-workshop\/kunstmatige-intelligentie\">AI-workshop<\/a> de snelste route naar de praktijk, en bij een bredere uitrol helpt <a href=\"https:\/\/datanorth.ai\/nl\/dienst\/consulting\/kunstmatige-intelligentie\">AI-consultancy<\/a> bij het inrichten van de gateway.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LLM-kosten beheers je niet met een verbruikslimiet, maar met architectuur. Prompt caching haalt de kosten uit herhaalde context, die bij RAG en lange systeemprompts snel oplopen. Batching levert 50% op voor alles wat mag wachten. Routing zet dure modellen alleen in waar ze het verschil maken. Wie de drie combineert, schaalt generatieve AI op zonder dat de rekening meeschaalt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Veelgestelde vragen (FAQ)<\/h2>\n\n\n\n<div class=\"wp-block-wpseopress-faq-block-v2 is-layout-flow wp-block-wpseopress-faq-block-v2-is-layout-flow\">\n<details id=\"kun-je-prompt-caching-combineren-met-intelligente-routing\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Kun je prompt caching combineren met intelligente routing?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Ja, en het is zelfs de bedoeling. In een gateway-architectuur kiest de router eerst het model. Daarna bouw je de prompt op met de statische context vooraan. Krijgt datzelfde model later dezelfde prefix binnen, dan pak je de caching-korting bovenop de routingwinst.<\/p>\n<\/details>\n\n\n\n<details id=\"wat-is-de-minimale-promptlengte-voor-caching-korting\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is de minimale promptlengte voor caching-korting?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Dat verschilt per aanbieder. OpenAI activeert caching vanaf 1.024 tokens. Bij Anthropic ligt de drempel op 512 tokens voor Claude Opus 5, 1.024 voor Sonnet 5 en 4.096 voor Haiku 4.5. Google Gemini cachet impliciet vanaf 2.048 tokens bij Gemini 2.5 en 4.096 bij Gemini 3.5 Flash. Omdat een cache write duurder is dan een gewone aanroep, loont het pas bij hergebruik binnen het bewaarvenster.<\/p>\n<\/details>\n\n\n\n<details id=\"merken-gebruikers-de-vertraging-van-een-router\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Merken gebruikers de vertraging van een router?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Meestal niet. Leveranciers rapporteren ruim onder de 40 milliseconden extra. In de praktijk verdwijnt die vertraging vaak, omdat de router de vraag verplaatst van een groot, traag model naar een kleiner model dat sneller begint met antwoorden.<\/p>\n<\/details>\n\n\n\n<details id=\"hoe-gaat-de-batch-api-om-met-rate-limits\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Hoe gaat de Batch API om met rate limits?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Batch-endpoints draaien op een eigen quotum, los van je normale limieten per minuut. Je kunt dus een grote hoeveelheid tokens in de wachtrij zetten zonder dat je productieverkeer daar last van heeft. Bij OpenAI gaat het om maximaal 50.000 aanvragen of 200 MB per batch, bij Anthropic om 100.000 aanvragen of 256 MB.<\/p>\n<\/details>\n\n\n\n<details id=\"wat-is-het-verschil-tussen-prompt-caching-en-een-semantische-cache\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is het verschil tussen prompt caching en een semantische cache?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Prompt caching werkt bij de aanbieder en vereist een exacte match van het begin van je prompt. Een semantische cache draait bij jou en matcht op betekenis, via vector-embeddings. Prompt caching verlaagt de kosten van een aanroep, een semantische cache voorkomt de aanroep helemaal.<\/p>\n<\/details>\n\n\n\n<details id=\"waar-begin-je-als-je-nu-te-veel-betaalt\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Waar begin je als je nu te veel betaalt?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Begin bij meten. Zet een gateway voor je verkeer en kijk waar je tokens heen gaan. Meestal valt de grootste winst direct op: een lange systeemprompt die niet gecachet wordt, of een achtergrondtaak via het real-time endpoint. Routing bouw je daarna, want dat vraagt om kwaliteitsbewaking.<\/p>\n<\/details>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing\",\"@id\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing\",\"mainEntity\":[{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#kun-je-prompt-caching-combineren-met-intelligente-routing\",\"name\":\"Kun je prompt caching combineren met intelligente routing?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Ja, en het is zelfs de bedoeling. In een gateway-architectuur kiest de router eerst het model. Daarna bouw je de prompt op met de statische context vooraan. Krijgt datzelfde model later dezelfde prefix binnen, dan pak je de caching-korting bovenop de routingwinst.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#wat-is-de-minimale-promptlengte-voor-caching-korting\",\"name\":\"Wat is de minimale promptlengte voor caching-korting?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Dat verschilt per aanbieder. OpenAI activeert caching vanaf 1.024 tokens. Bij Anthropic ligt de drempel op 512 tokens voor Claude Opus 5, 1.024 voor Sonnet 5 en 4.096 voor Haiku 4.5. Google Gemini cachet impliciet vanaf 2.048 tokens bij Gemini 2.5 en 4.096 bij Gemini 3.5 Flash. Omdat een cache write duurder is dan een gewone aanroep, loont het pas bij hergebruik binnen het bewaarvenster.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#merken-gebruikers-de-vertraging-van-een-router\",\"name\":\"Merken gebruikers de vertraging van een router?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Meestal niet. Leveranciers rapporteren ruim onder de 40 milliseconden extra. In de praktijk verdwijnt die vertraging vaak, omdat de router de vraag verplaatst van een groot, traag model naar een kleiner model dat sneller begint met antwoorden.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#hoe-gaat-de-batch-api-om-met-rate-limits\",\"name\":\"Hoe gaat de Batch API om met rate limits?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Batch-endpoints draaien op een eigen quotum, los van je normale limieten per minuut. Je kunt dus een grote hoeveelheid tokens in de wachtrij zetten zonder dat je productieverkeer daar last van heeft. Bij OpenAI gaat het om maximaal 50.000 aanvragen of 200 MB per batch, bij Anthropic om 100.000 aanvragen of 256 MB.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#wat-is-het-verschil-tussen-prompt-caching-en-een-semantische-cache\",\"name\":\"Wat is het verschil tussen prompt caching en een semantische cache?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Prompt caching werkt bij de aanbieder en vereist een exacte match van het begin van je prompt. Een semantische cache draait bij jou en matcht op betekenis, via vector-embeddings. Prompt caching verlaagt de kosten van een aanroep, een semantische cache voorkomt de aanroep helemaal.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/llm-kosten-verlagen-prompt-caching-batching-routing#waar-begin-je-als-je-nu-te-veel-betaalt\",\"name\":\"Waar begin je als je nu te veel betaalt?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Begin bij meten. Zet een gateway voor je verkeer en kijk waar je tokens heen gaan. Meestal valt de grootste winst direct op: een lange systeemprompt die niet gecachet wordt, of een achtergrondtaak via het real-time endpoint. Routing bouw je daarna, want dat vraagt om kwaliteitsbewaking.&lt;\/p>\"}}]}<\/script><\/div>\n\n\n<div class=\"brxe-container newsletter-sign-up-blog\"><div class=\"brxe-div newsletter-sign-up-blog__headings-div\"><div class=\"brxe-div newsletter-sign-up-blog__heading-icon-div\"><i id=\"brxe-xdnylt\" class=\"fa fa-envelope brxe-icon newsletter-sign-up-blog__icon\"><\/i><div class=\"brxe-heading newsletter-sign-up-blog__heading\">Schrijf je in voor onze Nieuwsbrief<\/div><\/div><div id=\"brxe-yrmmzb\" class=\"brxe-heading newsletter-sign-up-blog__subheading\">Blijf op de hoogte van onze nieuwste AI blogs, onderzoeken, diensten en nog veel meer!<\/div><\/div><div class=\"brxe-shortcode newsletter-sign-up-blog__shortcode form--light\"><div class='fluentform ff-default fluentform_wrapper_15 ffs_default_wrap'><form data-form_id=\"15\" id=\"fluentform_15\" class=\"frm-fluent-form fluent_form_15 ff-el-form-top ff_form_instance_15_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_15_1\" method=\"POST\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Newsletter Sign Up Form (Blog) (NL)<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='3442162' \/><input type=\"hidden\" id=\"_fluentform_15_fluentformnonce\" name=\"_fluentform_15_fluentformnonce\" value=\"35eb81002a\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/nl\/wp-json\/wp\/v2\/posts\/3442162\" \/><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_15_email' id='label_ff_15_email' aria-label=\"Email\">Email<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_15_email\" class=\"ff-el-form-control\" placeholder=\"E-mailadres\" data-name=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label   aria-label=\"Radio Field\">Radio Field<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='input_radio_66d5d0a24ac6371c8ee2ea3dfb9f6904'><input  type=\"radio\" name=\"input_radio\" data-name=\"input_radio\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth\"  id='input_radio_66d5d0a24ac6371c8ee2ea3dfb9f6904' aria-label='Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth' aria-invalid='false' aria-required=true> <span>Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group ff-text-left ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Aanmelden!\">Aanmelden!<\/button><\/div><\/fieldset><\/form><div id='fluentform_15_errors' class='ff-errors-in-stack ff_form_instance_15_1 ff-form-loading_errors ff_form_instance_15_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_15_1 = {\"id\":\"15\",\"ajaxUrl\":\"https:\\\/\\\/datanorth.ai\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\",\"asteriskPlacement\":\"asterisk-right\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_15_1\",\"form_id_selector\":\"fluentform_15\",\"rules\":{\"email\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true},\"email\":{\"value\":true,\"message\":\"This field must contain a valid email\",\"global_message\":\"This field must contain a valid email\",\"global\":true}},\"input_radio\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}}},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n            <\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Je verlaagt de kosten van een LLM-toepassing met drie technieken. Prompt caching geeft tot 90% korting op invoertokens die je herhaalt, prompt batching 50% op werk dat mag wachten, en intelligente routing stuurt eenvoudige vragen naar goedkope modellen. Dit artikel legt per techniek uit hoe het werkt, wat de aanbieders rekenen, en hoe je ze combineert.<\/p>\n","protected":false},"author":12,"featured_media":3442164,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"LLM-kosten verlagen: prompt caching, batching en routing","_seopress_titles_desc":"Verlaag je LLM-kosten met prompt caching, batching en intelligente routing. Drempels en tarieven van OpenAI, Anthropic en Google, plus een bouwplan.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[71],"tags":[],"class_list":["post-3442162","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ai-in-de-praktijk"],"meta_box":{"faq_item":[]},"_links":{"self":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3442162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/comments?post=3442162"}],"version-history":[{"count":2,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3442162\/revisions"}],"predecessor-version":[{"id":3442176,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3442162\/revisions\/3442176"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media\/3442164"}],"wp:attachment":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media?parent=3442162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/categories?post=3442162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/tags?post=3442162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}