SDK- und Framework-Integrationen
Jedes SDK verbindet sich in denselben drei Schritten mit GateLLM. Finden Sie Ihr SDK, beachten Sie seine base_url-Konvention und Gotcha und kopieren Sie dann das Muster.
Das Gateway ist protokollorientiert: Welches SDK Sie auch nutzen — solange es OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP spricht, können Sie durch Richten seiner base_url auf das Gateway und Einsetzen eines Zugriffsschlüssels jedes konfigurierte Modell aufrufen — einschließlich protokollübergreifender Aufrufe von Modellen anderer Anbieter.
base_url auf das Gateway richten
Standard ist https://your-gateway.gatellm.io — ob /v1 enthalten ist, hängt vom SDK ab (jedes Beispiel nennt den genauen Wert).
Gateway-Zugriffsschlüssel einsetzen
Kein Upstream-sk-…-Schlüssel — derselbe Zugriffsschlüssel wird in den Header eingetragen, den Ihr SDK erwartet.
Den Gateway-Modellnamen verwenden
Was Sie in der Konsole konfiguriert haben — nicht der offizielle Name des Anbieters.
Authorization: Bearer <key>x-api-key: <key>x-goog-api-key: <key>SDK-Auswahlmatrix
| SDK / Framework | Sprache | Protokoll | Dokumentation |
|---|---|---|---|
Offizielle Anbieter-SDKsGitHub-Beispiele ↗ | |||
| OpenAI SDK | Python, Node.js | OpenAI | Beispiele |
| Anthropic SDK | Python, Node.js | Anthropic | Beispiele |
| Google GenAI SDK | Python, JavaScript | Gemini | Beispiele |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | Beispiele |
DashScope nativ | |||
| DashScope SDK | Python | DashScope | Beispiele |
Vereinheitlichte SDKs und GatewaysGitHub-Beispiele ↗ | |||
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | Beispiele |
| LiteLLM | Python | OpenAI-compatible | Beispiele |
| Portkey | Node.js, Python | OpenAI-compatible | Beispiele |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | Beispiele |
| Semantic Kernel | Python, .NET | OpenAI-compatible | Beispiele |
| Spring AI | Java | OpenAI-compatible | Beispiele |
Orchestrierungs-FrameworksGitHub-Beispiele ↗ | |||
| LangChain | Python, TypeScript | OpenAI / Anthropic | Beispiele |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | Beispiele |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | Beispiele |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | Beispiele |
| AutoGen / AG2 | Python | OpenAI-compatible | Beispiele |
| DSPy | Python | OpenAI-compatible | Beispiele |
| Haystack | Python | OpenAI-compatible | Beispiele |
| Llama Stack | Python | OpenAI-compatible | Beispiele |
Agent-SDKs | |||
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | Beispiele |
| Claude Agent SDK | Python, TypeScript | Anthropic | Beispiele |
| Pydantic AI | Python | OpenAI-compatible | Beispiele |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | Beispiele |
| Mastra | TypeScript | OpenAI-compatible | Beispiele |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | Beispiele |
| MCP SDK | Python, TypeScript | MCP | Beispiele |
Echtzeit und Audio | |||
| Realtime WebSocket | Any WS client | OpenAI Realtime | Beispiele |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | Beispiele |
Lokal / selbst gehostet | |||
| Ollama | REST | OpenAI-compatible (upstream) | Beispiele |
| vLLM | REST | OpenAI-compatible (upstream) | Beispiele |
| llama.cpp server | REST | OpenAI-compatible (upstream) | Beispiele |
| SGLang | REST | OpenAI-compatible (upstream) | Beispiele |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | Beispiele |
| LM Studio | REST | OpenAI-compatible (upstream) | Beispiele |
Gotchas
Nicht der offizielle Name des Anbieters, nicht die Upstream-Modell-ID — sondern der Name, den Sie in der Konsole vergeben haben. Falscher Name → 404 model_not_found.
Das OpenAI SDK erwartet /v1; das Anthropic SDK erwartet die Wurzel (es hängt /v1/messages an); createAnthropic im Vercel AI SDK erwartet /v1 (es hängt /messages an). Ein Fehler hier fügt ein Pfadsegment hinzu oder entfernt es.
Aus max_tokens kann max_output_tokens mit einer Untergrenze werden (z. B. ≥16), wenn der Upstream ein Modell mit Responses-Protokoll ist — zu klein → 400.
Thinking-Inhalte und Signaturen von Claude / Gemini werden durchgereicht oder entfernt — nehmen Sie das Element mit type == "text" aus dem Content-Array, gehen Sie nicht davon aus, dass content[0] Text ist.
Es ruft die Responses API auf, nicht Chat Completions. Ist der Upstream openai (Chat), wechseln Sie explizit mit OpenAIChatCompletionsModel; ist er openai_response, funktioniert ein String-Modellname unverändert.
Die OpenAI-Klasse akzeptiert nur bekannte Familien und lehnt benutzerdefinierte Gateway-Namen ab — verwenden Sie OpenAILike (Python) oder deklarieren Sie die Modellinformationen explizit.
base_url ist kein Framework-Parameter, sondern die Umgebungsvariable OPENAI_API_BASE, und das Modell benötigt das Präfix openai/.
Unbekannte Modellnamen führen in der Standardliste zu Fehlern — deklarieren Sie model_info explizit, um die Prüfung zu umgehen.
base_url erfolgt über http_options.base_url (ohne /v1), und der Schlüssel wird im Header x-goog-api-key übergeben.