MigratiegidsenVanaf directe OpenAI- en Anthropic-SDK's
Van directe SDK-calls naar één control plane
De meeste teams beginnen met OpenAI of Anthropic aan te roepen via de SDK van de leverancier en een sleutel in een omgevingsvariabele. Dat werkt tot er meerdere diensten zijn, meerdere sleutels en een maandfactuur die niemand kan toewijzen. Deze pagina is de wijziging die INFRO voor die calls zet zonder van SDK, provideraccount of contract te wisselen.
Je eigen code, die de SDK van elke provider aanroept met de sleutel van die provider
INFRO-accounts zijn selfservice. De catalogus, de documentatie en het API-contract zijn openbaar, de gateway is uitgerold, en alles na v1 is gemarkeerd als Later. Plannen en proefperiode
Hoe het ervoor staat
Wat je hebt
Providersleutels in de omgeving van elke dienst, retries en time-outs per codebase geschreven, en kosten alleen zichtbaar op de factuur of gebruikspagina van de provider, op zijn best per sleutel of project.
Wat verandert
Elke client wijst naar https://api.infro.io met een INFRO-gatewaysleutel. Je providersleutels gaan als verbindingen naar INFRO, verzegeld; je providers blijven je rechtstreeks factureren tegen je eigen tarieven.
Wat niet verandert
De SDK's, de request- en responsvormen, streaming, toolcalls en structured outputs op chat completions. INFRO beantwoordt de Chat Completions- en Responses-vorm van OpenAI en de Messages-vorm van Anthropic.
Een gateway is een extra hop en een extra leverancier. Voor sommige opstellingen is het dat nog niet waard, en deze lijst is daar de eerlijke versie van.
- Eén dienst, één provider, één sleutel, en een factuur die één persoon leest. Een gateway voegt een hop en een abonnement toe voordat hij iets toevoegt wat je nodig hebt.
- Je workload bestaat vooral uit Batch, fine-tuning, Files, vector stores of de Realtime API. INFRO biedt geen daarvan aan; die calls zouden sowieso direct blijven.
- Je bent afhankelijk van een providerfeature die de chatvormen niet meenemen, en je gebruikt alleen die provider. Calls die INFRO niet kan meenemen, kun je beter direct laten dan half omzetten.
- Elk verzoek moet binnen één cloudregio blijven. INFRO draait op het netwerk van Cloudflare en regio's vastpinnen is vandaag niet beschikbaar.
De wijzigingen, één rij per wijziging. Alles wat hier niet staat, blijft zoals het is.
| Directe SDK-calls | INFRO | |
|---|---|---|
| Basis-URL | De standaard van de SDK: api.openai.com/v1, api.anthropic.com. | https://api.infro.io/v1 voor de OpenAI SDK; https://api.infro.io voor de Anthropic SDK (die voegt /v1/messages toe). |
| Sleutel | OPENAI_API_KEY, ANTHROPIC_API_KEY in elke dienst. | Een INFRO-gatewaysleutel (Authorization: Bearer; de x-api-key van de Anthropic SDK wordt ook geaccepteerd). De providersleutels worden één keer in de console ingevoerd, als verbindingen. |
| Model-ID | gpt-5.6-terra, claude-sonnet-5-5. | openai/gpt-5.6-terra op chat completions, of een routenaam. De Anthropic SDK kan claude-sonnet-5-5 houden: /v1/messages leest de eigen ID's van Anthropic. |
| Toewijzing | Meestal niets, of het user-veld van de provider. | metadata.user_id, metadata.session_id, metadata.tags in de body, of de headers X-INFRO-User-Id / X-INFRO-Feature. Vastgelegd bij het verzoek, nooit naar de provider gestuurd. |
Voor · provider-SDK's
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI(); // reads OPENAI_API_KEY
const anthropic = new Anthropic(); // reads ANTHROPIC_API_KEY
await openai.chat.completions.create({
model: "gpt-5.6-terra",
messages: [{ role: "user", content: "Hello" }],
});
await anthropic.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});Na · INFRO
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI({
baseURL: "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY,
});
const anthropic = new Anthropic({
baseURL: "https://api.infro.io",
apiKey: process.env.INFRO_API_KEY,
});
await openai.chat.completions.create({
model: "openai/gpt-5.6-terra",
messages: [{ role: "user", content: "Hello" }],
});
await anthropic.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});Failover zonder nieuwe code
Koppel Claude op Anthropic en op Vertex AI, of twee Anthropic-sleutels, en een verzoek dat het model noemt, schakelt daartussen over bij een fout. Een benoemde route legt de volgorde en de regels per fout (429, 5xx, time-out) vast in configuratie.
Budgetten vóór de call
Budgetten op organisatie, project, lid en sleutel reserveren het slechtste geval van een verzoek voordat de provider wordt aangeroepen. Bij het plafond is het antwoord 402 budget_exceeded, in de eigen foutstructuur van de API.
Wat je met rust laat
Batch, Files, fine-tuning, vector stores, moderations en Realtime houden hun directe client. Eén dienst kan beide clients hebben: één via INFRO, één direct. Embeddings gaan mee, maar houd precies het model dat je index heeft gebouwd: vectoren van verschillende modellen zijn niet vergelijkbaar.
Wat je setup vandaag doet tegenover INFRO, getoetst aan wat de gateway implementeert. Eén rij zegt dat INFRO niets heeft.
| Directe SDK-calls | Wat het daar doet | In INFRO |
|---|---|---|
| Providersleutel per dienstanders | Elke dienst bewaart de sleutel van de provider in zijn omgeving. | De sleutel is een verbinding, verzegeld in INFRO; diensten hebben afgebakende gatewaysleutels die kunnen worden beperkt tot providers, modellen, IP-bereiken en een omgeving, en die kunnen worden geroteerd of uitgezet. |
| Retries en time-outsanders | De eigen retries van de SDK, plus wat elke codebase toevoegt. | Routes met doelen op prioriteit of gewicht over je verbindingen en faalregels per soort (429, 5xx, time-out). De eigen retries van de SDK gelden daar nog bovenop. |
| Kostenanders | De gebruikspagina en factuur van de provider, per sleutel of project. | Geschatte providerkosten op elke respons (usage.cost, usage.price_source), per project, sleutel, gebruiker en tag; dagelijks gereconcilieerd met de eigen kosten-API's van OpenAI en Anthropic via een beheerderssleutel die je toevoegt. |
| Uitgavenlimietenanders | Projectlimieten aan de kant van de provider, waar de provider die biedt. | Budgetten die bij het plafond weigeren met 402, over alle providers tegelijk, op het niveau van organisatie, project, lid, sleutel en eindklant. |
| Chat Completions en Responseszelfde vorm | De twee tekst-API's van OpenAI. | Allebei, op /v1/chat/completions en /v1/responses. previous_response_id en background worden geweigerd: INFRO bewaart geen responses, dus stuur bij elke beurt het gesprek mee. |
| Anthropic Messageszelfde vorm | /v1/messages, met thinking, cache_control en server tools. | /v1/messages in de vorm van Anthropic. Op een Anthropic-verbinding, of Claude op Vertex AI, bereikt de body de provider zoals geschreven. |
| Afbeeldingen, spraak, transcriptie, videozelfde vorm | De media-endpoints van de provider. | /v1/images, /v1/audio, /v1/videos met asynchrone jobs, bij de providers die elk model aanbieden. |
| Embeddingszelfde vorm | /v1/embeddings. | /v1/embeddings in de vorm van OpenAI op je OpenAI-, Azure OpenAI- of Mistral-verbinding. Failover alleen naar hetzelfde model, zodat opgeslagen vectoren vergelijkbaar blijven. |
| Batch, Files, fine-tuning, Realtimeniets | Provider-API's op accountniveau. | Niet aangeboden, en niet gepland als gatewayfuncties. Die blijven bij de provider. |
Wat INFRO niet doet
- Batch, Files, fine-tuning, vector stores, moderations, Assistants en de Realtime API.
- Opgeslagen responses:
previous_response_id,conversationenbackground: trueop/v1/responsesworden geweigerd met400. - Regio vastpinnen. INFRO draait op het netwerk van Cloudflare; dataresidentie staat op de roadmap en is niet beschikbaar.
- Een zelf gehoste deployment zonder enterprise-overeenkomst.
Wat niet meekomt
- Gebruiksgeschiedenis van vóór de overstap. Het eigen dashboard van de provider bewaart die; INFRO legt vast vanaf het eerste verzoek dat het bedient.
- Projectlimieten aan de kant van de provider. Stel in plaats daarvan INFRO-budgetten in; de limieten van de provider blijven aan zijn kant gelden.
Vragen
- Betaal ik OpenAI en Anthropic nog steeds rechtstreeks?
- Ja. INFRO roept je eigen provideraccounts aan met je sleutels, dus je providers factureren je tegen je eigen tarieven. INFRO rekent een abonnement en voegt 0% toe aan modeluitgaven.
- Moet ik van SDK wisselen?
- Nee. De OpenAI SDK accepteert een
baseURLvanhttps://api.infro.io/v1, de Anthropic SDK eenbaseURLvanhttps://api.infro.io, en beide accepteren de INFRO-sleutel als API-sleutel. - Wat moet direct bij de provider blijven?
- Batch, Files, fine-tuning, vector stores, moderations en Realtime. INFRO biedt die niet aan. Embeddings kunnen mee:
/v1/embeddingsdraait op OpenAI-, Azure OpenAI- en Mistral-verbindingen.
Overstappen met ons, of zelf
Het migratieprogramma brengt je directe OpenAI- en Anthropic-SDK's-setup in een gesprek in kaart naar INFRO-verbindingen, -routes en -budgetten en verhuist de eerste service samen met je. Je providers blijven je rechtstreeks factureren; INFRO is een abonnement en voegt 0% toe aan modeluitgaven.
Bronnen
Het SDK-gedrag op deze pagina komt uit deze bronnen, gelezen op 19 oktober 2026.
- OpenAI — openai-node README (client options)gelezen 19 okt 2026
- OpenAI — openai-python README (client options)gelezen 19 okt 2026
- Anthropic — TypeScript SDKgelezen 19 okt 2026
- Anthropic — Python SDKgelezen 19 okt 2026