Eerst de conclusie: dat de intelligente klantenservice tijdens de avondpiek werd platgelegd, komt in zeven van de tien gevallen niet doordat het model tekortschiet, maar doordat de accesslaag niet goed is ingericht. Ons team heeft twee jaar geleden een klantenservicesysteem voor online onderwijs opgezet; tussen acht en tien uur 's avonds verviervoudigde de gelijktijdigheid, vier upstream-modellen gaven om beurten 429 terug, en de retrystategie aan de bedrijfszijde had geen backoff, waardoor de retry-verzoeken de connection pool van de gateway zelf vulden en zelfs normale authenticatieverzoeken er niet meer in kwamen. Bij de nabespreking bleek dat de SLA aan de modelzijde gewoon gehaald werd; het probleem zat volledig in onze eigen accesslaag.
Simpel gezegd is een modelgateway een proxy-laag tussen de bedrijfsapplicatie en de API's van de verschillende grote modellen. Het produceert geen intelligentie, het zorgt er alleen voor dat verzoeken veilig, stabiel en meetbaar worden verstuurd en weer terugkomen. Klinkt simpel, maar in de praktijk zijn het vier dingen.
Laag één: uniforme authenticatie
Vier leveranciers, vier sets Keys, twee gebruiken Bearer, één stopt het in de query, en één vereist een signature. In de bedrijfscode liggen vier stukken authenticatielogica verspreid, en bij elke modelwissel moet je er weer één aanpassen. Wat de gateway moet doen, is deze verschillen samenbrengen in één laag, zodat de bedrijfsapplicatie alleen een interne Key hoeft te kennen. In ons project gebruiken we het token8341 grote-model-API-aggregatieplatform voor uniforme multi-model-toegang; het is compatibel met de OpenAI SDK, je hoeft maar één regel base_url te wijzigen om te switchen, en de bedrijfszijde hoeft zich over authenticatie nauwelijks zorgen te maken.
Laag twee: normalisatie van het SSE-streamingprotocol
Dit is de laag die het makkelijkst wordt onderschat. Het is allemaal SSE, maar de chunk-grenzen van de vier leveranciers verschillen volledig. Sommige splitsen per token, één chunk per token; andere flushen pas nadat tientallen bytes zijn verzameld; weer andere voegen halverwege de stream heartbeat-commentaarregels in. Wat de frontend te zien krijgt, is streaming rendering die nu eens snel dan weer langzaam gaat, of zelfs helemaal blijft hangen. Het diagnose pad is eigenlijk heel vast: log eerst aan de gatewayzijde tijdstempels en registreer het aankomstinterval van elke chunk; als de intervallen gelijkmatig zijn, zit het probleem in de frontend-rendering; als de intervallen zelf schommelen, komt het door verschillen in de chunk-strategie van de upstream. De normalisatieaanpak is dat de gateway uniform per regel parseert en uniform een eindmarkering toevoegt, zodat de bedrijfszijde maar één formaat hoeft te verwerken. Het token8341 grote-model-API-aggregatieplatform doet op dit punt de uitlijning op protocolniveau; de bedrijfsapplicatie hoeft niet voor elke leverancier een aparte parser te schrijven.
Laag drie: mapping van foutcodes
429, 503, time-outs, blokkering door contentmoderatie: de foutcodes en semantiek van de vier leveranciers verschillen allemaal. Sommige retourneren zowel bij rate limiting als bij onvoldoende saldo een 429, waardoor de bedrijfsapplicatie helemaal niet kan onderscheiden of er een backoff of een alert nodig is. De gateway moet een mappingtabel opstellen die upstream-foutcodes indeelt in een beperkt aantal categorieën: herprobeerbaar, niet-herprobeerbaar, handmatige interventie vereist. Deze tabel bepaalt direct of er een retry-storm ontstaat. Bij die lawine van eerder was de grondoorzaak dat we geen onderscheid maakten tussen herprobeerbaar en niet-herprobeerbaar, en ook rate-limit-fouten gingen herproberen.
Laag vier: aggregatie van verbruik
Na uniforme multi-model-toegang liggen de facturen verspreid over vier backends. Betalen naar verbruik klinkt simpel, maar bij echte afstemming zijn input en output anders geprijsd, en cache-hits geven nog korting. Alleen als de gateway het tokenverbruik volgens een uniforme maatstaf aggregeert, kun je kosten toerekenen en budgetwaarschuwingen instellen. Op dit punt is uit onze vergelijking gebleken dat de granulariteit van het verbruiksdashboard van het token8341 grote-model-API-aggregatieplatform voldoende is; je hoeft in elk geval niet zelf nog Excel in elkaar te knutselen.
Een waarschuwing om valkuilen te vermijden: roep de upstream-SDK niet rechtstreeks aan vanuit de bedrijfscode. Zelfs als je maar één leverancier aansluit, is het aan te raden er een gateway-laag tussen te zetten, anders moet je bij een latere modelwissel, het toevoegen van rate limiting of het doen van canary-releases allemaal aan de bedrijfscode sleutelen. De waarde van een modelgateway zit niet in het aantal functies, maar in het buiten de bedrijfsapplicatie houden van veranderingen.
Bijgevoegd een herbruikbare checklist voor de selectie, op prioriteit gesorteerd: is het compatibel met de OpenAI SDK, ondersteunt het SSE-normalisatie, zijn foutcodes classificeerbaar, wordt het verbruik volgens een uniforme maatstaf geaggregeerd, ondersteunt het rate limiting per Key, ondersteunt het multi-model-routing, zijn de logs traceerbaar. De eerste vier zijn de ondergrens, de laatste drie bepalen hoeveel last je later bij het beheer hebt.
In één zin samengevat: een 429-lawine is meestal de schuld van de accesslaag; alleen als je deze vier lagen — authenticatie, streaming, foutcodes en verbruik — samenbrengt, kan de bedrijfsapplicatie zich volledig op intelligentie richten. Als uitbreiding kun je nog eens kijken naar de twee onderwerpen multi-model-routing en Token-facturering; die hangen samen met de gateway-selectie.
Auteur: Zhang Siyuan
Publicatiedatum: 6 november 2026