MigrationsleitfädenVon direkte SDKs von OpenAI und Anthropic
Von direkten SDK-Aufrufen zu einer Control Plane
Die meisten Teams rufen OpenAI oder Anthropic zunächst mit dem SDK des Herstellers und einem Schlüssel in einer Umgebungsvariable auf. Das funktioniert, bis es mehrere Dienste, mehrere Schlüssel und eine Monatsrechnung gibt, die niemand zuordnen kann. Diese Seite zeigt die Änderung, die INFRO vor diese Aufrufe setzt, ohne SDK, Anbieterkonto oder Vertrag zu wechseln.
Ihr eigener Code, der das SDK jedes Anbieters mit dessen Schlüssel aufruft
INFRO-Konten sind per Selbstregistrierung verfügbar. Katalog, Dokumentation und API-Vertrag sind öffentlich, das Gateway ist bereitgestellt, und alles über v1 hinaus ist als „Später“ markiert. Tarife und Testphase
Wo die Dinge stehen
Was Sie haben
Anbieterschlüssel in der Umgebung jedes Dienstes, Wiederholungen und Timeouts in jeder Codebasis eigens geschrieben, und Kosten nur auf der Rechnung oder Nutzungsseite des Anbieters sichtbar, bestenfalls nach Schlüssel oder Projekt.
Was sich ändert
Jeder Client zeigt mit einem INFRO-Gateway-Schlüssel auf https://api.infro.io. Ihre Anbieterschlüssel ziehen als Verbindungen in INFRO um, versiegelt; Ihre Anbieter rechnen weiterhin direkt zu Ihren eigenen Preisen mit Ihnen ab.
Was nicht
Die SDKs, die Anfrage- und Antwortformate, Streaming, Tool-Aufrufe und Structured Outputs bei Chat Completions. INFRO beantwortet die Formate Chat Completions und Responses von OpenAI und das Messages-Format von Anthropic.
Ein Gateway ist ein zusätzlicher Hop und ein zusätzlicher Anbieter. Für manche Setups lohnt es sich noch nicht, und diese Liste ist die ehrliche Fassung davon.
- Ein Dienst, ein Anbieter, ein Schlüssel und eine Rechnung, die eine Person liest. Ein Gateway bringt einen Hop und ein Abonnement, bevor es irgendetwas bringt, das Sie brauchen.
- Ihr Workload besteht vor allem aus Batch, Fine-Tuning, Files, Vector Stores oder der Realtime API. INFRO stellt nichts davon bereit; diese Aufrufe blieben ohnehin direkt.
- Sie sind auf eine Anbieterfunktion angewiesen, die die Chat-Formate nicht abbilden, und nutzen nur diesen Anbieter. Aufrufe, die INFRO nicht abbilden kann, bleiben besser direkt als halb umgestellt.
- Jede Anfrage muss in einer einzigen Cloud-Region bleiben. INFRO läuft im Netz von Cloudflare, und die Bindung an eine Region ist heute nicht verfügbar.
Die Änderungen, je eine Zeile. Alles, was hier nicht aufgeführt ist, bleibt, wie es ist.
| Direkte SDK-Aufrufe | INFRO | |
|---|---|---|
| Basis-URL | Die SDK-Voreinstellung: api.openai.com/v1, api.anthropic.com. | https://api.infro.io/v1 für das OpenAI SDK; https://api.infro.io für das Anthropic SDK (es hängt /v1/messages an). |
| Schlüssel | OPENAI_API_KEY, ANTHROPIC_API_KEY in jedem Dienst. | Ein INFRO-Gateway-Schlüssel (Authorization: Bearer; x-api-key des Anthropic SDK wird ebenfalls akzeptiert). Die Anbieterschlüssel werden einmal in der Konsole als Verbindungen eingetragen. |
| Modell-ID | gpt-5.6-terra, claude-sonnet-5-5. | openai/gpt-5.6-terra bei Chat Completions oder ein Routenname. Das Anthropic SDK kann claude-sonnet-5-5 behalten: /v1/messages liest die eigenen IDs von Anthropic. |
| Zuordnung | Meist nichts oder das Feld user des Anbieters. | metadata.user_id, metadata.session_id, metadata.tags im Body oder die Header X-INFRO-User-Id / X-INFRO-Feature. Werden an der Anfrage erfasst, nie an den Anbieter gesendet. |
Vorher · Anbieter-SDKs
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" }],
});Nachher · 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 ohne neuen Code
Verbinden Sie Claude bei Anthropic und auf Vertex AI oder zwei Anthropic-Schlüssel, und eine Anfrage, die das Modell nennt, weicht zwischen ihnen aus. Eine benannte Route legt die Reihenfolge und die Regeln pro Fehler (429, 5xx, Timeout) in der Konfiguration fest.
Budgets vor dem Aufruf
Budgets auf Ebene von Organisation, Projekt, Mitglied und Schlüssel reservieren den ungünstigsten Fall einer Anfrage, bevor der Anbieter aufgerufen wird. Am Limit lautet die Antwort 402 budget_exceeded, im eigenen Fehlerformat der API.
Was Sie unverändert lassen
Batch, Files, Fine-Tuning, Vector Stores, Moderations und Realtime behalten ihren direkten Client. Ein einzelner Dienst kann beide Clients haben: einen über INFRO, einen direkt. Embeddings ziehen um, behalten aber genau das Modell, mit dem Ihr Index erstellt wurde: Vektoren verschiedener Modelle sind nicht vergleichbar.
Was Ihr Setup heute tut, gegenüber INFRO, geprüft anhand dessen, was das Gateway implementiert. Eine Zeile besagt, dass INFRO nichts hat.
| Direkte SDK-Aufrufe | Was es dort tut | In INFRO |
|---|---|---|
| Anbieterschlüssel pro Dienstanders | Jeder Dienst hält den Schlüssel des Anbieters in seiner Umgebung. | Der Schlüssel ist eine Verbindung, versiegelt in INFRO; Dienste halten eingegrenzte Gateway-Schlüssel, die auf Anbieter, Modelle, IP-Bereiche und eine Umgebung beschränkt, rotiert oder abgeschaltet werden können. |
| Wiederholungen und Timeoutsanders | Die eigenen Wiederholungen des SDK, plus was jede Codebasis hinzufügt. | Routen mit priorisierten oder gewichteten Zielen über Ihre Verbindungen und Fehlerregeln pro Art (429, 5xx, Timeout). Die eigenen Wiederholungen des SDK gelten zusätzlich weiter. |
| Kostenanders | Die Nutzungsseite und Rechnung des Anbieters, nach Schlüssel oder Projekt. | Geschätzte Anbieterkosten in jeder Antwort (usage.cost, usage.price_source), nach Projekt, Schlüssel, Nutzer und Tag; täglich mit den eigenen Kosten-APIs von OpenAI und Anthropic abgeglichen, über einen Admin-Schlüssel, den Sie hinzufügen. |
| Ausgabenlimitsanders | Projektlimits beim Anbieter, wo der Anbieter sie anbietet. | Budgets, die am Limit mit 402 ablehnen, über alle Anbieter gleichzeitig, auf Ebene von Organisation, Projekt, Mitglied, Schlüssel und Endkunde. |
| Chat Completions und Responsesgleiche Form | Die zwei Text-APIs von OpenAI. | Beide, unter /v1/chat/completions und /v1/responses. previous_response_id und background werden abgelehnt: INFRO speichert keine Antworten, senden Sie die Konversation also bei jedem Schritt mit. |
| Anthropic Messagesgleiche Form | /v1/messages, mit Thinking, cache_control und Server-Tools. | /v1/messages im Format von Anthropic. Auf einer Anthropic-Verbindung oder bei Claude auf Vertex AI erreicht der Body den Anbieter unverändert. |
| Bilder, Sprachausgabe, Transkription, Videogleiche Form | Die Medien-Endpunkte des Anbieters. | /v1/images, /v1/audio, /v1/videos mit asynchronen Jobs, bei den Anbietern, die das jeweilige Modell bereitstellen. |
| Embeddingsgleiche Form | /v1/embeddings. | /v1/embeddings im OpenAI-Format auf Ihrer Verbindung zu OpenAI, Azure OpenAI oder Mistral. Failover nur auf dasselbe Modell, damit gespeicherte Vektoren vergleichbar bleiben. |
| Batch, Files, Fine-Tuning, Realtimenichts | Anbieter-APIs auf Kontoebene. | Nicht bereitgestellt und nicht als Gateway-Funktionen geplant. Sie bleiben beim Anbieter. |
Was INFRO nicht tut
- Batch, Files, Fine-Tuning, Vector Stores, Moderations, Assistants und die Realtime API.
- Gespeicherte Antworten:
previous_response_id,conversationundbackground: trueauf/v1/responseswerden mit400abgelehnt. - Bindung an eine Region. INFRO läuft im Netz von Cloudflare; Datenresidenz steht auf der Roadmap und ist nicht verfügbar.
- Ein selbst gehostetes Deployment ohne Enterprise-Vertrag.
Was nicht übernommen wird
- Nutzungsverlauf von vor der Umstellung. Das eigene Dashboard des Anbieters behält ihn; INFRO erfasst ab der ersten Anfrage, die es bedient.
- Projektlimits beim Anbieter. Setzen Sie stattdessen INFRO-Budgets; die Limits des Anbieters gelten auf seiner Seite weiterhin.
Fragen
- Bezahle ich OpenAI und Anthropic weiterhin direkt?
- Ja. INFRO ruft Ihre eigenen Anbieterkonten mit Ihren Schlüsseln auf, daher rechnen Ihre Anbieter zu Ihren eigenen Preisen mit Ihnen ab. INFRO berechnet ein Abonnement und schlägt 0 % auf Modellausgaben auf.
- Muss ich das SDK wechseln?
- Nein. Das OpenAI SDK nimmt als
baseURLhttps://api.infro.io/v1, das Anthropic SDK alsbaseURLhttps://api.infro.io, und beide nehmen den INFRO-Schlüssel als API-Schlüssel. - Was muss direkt beim Anbieter bleiben?
- Batch, Files, Fine-Tuning, Vector Stores, Moderations und Realtime. INFRO stellt sie nicht bereit. Embeddings können umziehen:
/v1/embeddingsläuft über Verbindungen zu OpenAI, Azure OpenAI und Mistral.
Wechseln Sie mit uns oder auf eigene Faust
Das Migrationsprogramm überträgt Ihr direkte SDKs von OpenAI und Anthropic-Setup in einem Gespräch auf INFRO-Verbindungen, -Routen und -Budgets und zieht den ersten Dienst gemeinsam mit Ihnen um. Ihre Anbieter rechnen weiterhin direkt mit Ihnen ab; INFRO ist ein Abonnement und schlägt 0 % auf Modellausgaben auf.
Quellen
Das SDK-Verhalten auf dieser Seite stammt aus diesen Quellen, gelesen am 19. Oktober 2026.
- OpenAI — openai-node README (client options)gelesen am 19. Okt. 2026
- OpenAI — openai-python README (client options)gelesen am 19. Okt. 2026
- Anthropic — TypeScript SDKgelesen am 19. Okt. 2026
- Anthropic — Python SDKgelesen am 19. Okt. 2026