Intégrations SDK et frameworks
Chaque SDK se connecte à GateLLM en trois étapes identiques. Trouvez votre SDK, notez sa convention de base_url et son piège, puis copiez le schéma.
La passerelle est orientée protocoles : quel que soit le SDK que vous utilisez, tant qu’il parle OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, pointer son base_url vers la passerelle et remplacer la clé par une clé d’accès vous permet d’appeler n’importe quel modèle configuré — y compris des appels inter-protocoles vers les modèles d’autres fournisseurs.
Pointer base_url vers la passerelle
Par défaut https://your-gateway.gatellm.io — la présence de /v1 dépend du SDK (chaque exemple donne la valeur exacte).
Remplacer par une clé d’accès à la passerelle
Ce n’est pas une clé amont sk-… — la même clé d’accès s’insère dans l’en-tête attendu par votre SDK.
Utiliser le nom de modèle de la passerelle
Celui que vous avez configuré dans la console — pas le nom officiel du fournisseur.
Authorization: Bearer <key>x-api-key: <key>x-goog-api-key: <key>Matrice de sélection des SDK
| SDK / framework | Langage | Protocole | Docs |
|---|---|---|---|
SDK officiels des fournisseursExemples GitHub ↗ | |||
| OpenAI SDK | Python, Node.js | OpenAI | Exemples |
| Anthropic SDK | Python, Node.js | Anthropic | Exemples |
| Google GenAI SDK | Python, JavaScript | Gemini | Exemples |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | Exemples |
Natif DashScope | |||
| DashScope SDK | Python | DashScope | Exemples |
SDK et passerelles unifiésExemples GitHub ↗ | |||
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | Exemples |
| LiteLLM | Python | OpenAI-compatible | Exemples |
| Portkey | Node.js, Python | OpenAI-compatible | Exemples |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | Exemples |
| Semantic Kernel | Python, .NET | OpenAI-compatible | Exemples |
| Spring AI | Java | OpenAI-compatible | Exemples |
Frameworks d’orchestrationExemples GitHub ↗ | |||
| LangChain | Python, TypeScript | OpenAI / Anthropic | Exemples |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | Exemples |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | Exemples |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | Exemples |
| AutoGen / AG2 | Python | OpenAI-compatible | Exemples |
| DSPy | Python | OpenAI-compatible | Exemples |
| Haystack | Python | OpenAI-compatible | Exemples |
| Llama Stack | Python | OpenAI-compatible | Exemples |
SDK d’agents | |||
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | Exemples |
| Claude Agent SDK | Python, TypeScript | Anthropic | Exemples |
| Pydantic AI | Python | OpenAI-compatible | Exemples |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | Exemples |
| Mastra | TypeScript | OpenAI-compatible | Exemples |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | Exemples |
| MCP SDK | Python, TypeScript | MCP | Exemples |
Temps réel et audio | |||
| Realtime WebSocket | Any WS client | OpenAI Realtime | Exemples |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | Exemples |
Local / auto-hébergé | |||
| Ollama | REST | OpenAI-compatible (upstream) | Exemples |
| vLLM | REST | OpenAI-compatible (upstream) | Exemples |
| llama.cpp server | REST | OpenAI-compatible (upstream) | Exemples |
| SGLang | REST | OpenAI-compatible (upstream) | Exemples |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | Exemples |
| LM Studio | REST | OpenAI-compatible (upstream) | Exemples |
Pièges
Ni le nom officiel du fournisseur, ni l’ID du modèle amont — celui que vous lui avez donné dans la console. Un nom erroné → 404 model_not_found.
Le SDK OpenAI prend /v1 ; le SDK Anthropic prend la racine (il ajoute /v1/messages) ; createAnthropic du Vercel AI SDK prend /v1 (il ajoute /messages). Se tromper ajoute ou supprime un segment de chemin.
Un max_tokens peut devenir max_output_tokens avec une borne inférieure (par exemple ≥16) lorsque l’amont est un modèle au protocole Responses — une valeur trop petite → 400.
Le contenu et les signatures de réflexion de Claude / Gemini sont transmis ou supprimés — prenez l’élément type == "text" du tableau content, ne supposez pas que content[0] est du texte.
Il appelle l’API Responses, pas Chat Completions. Si l’amont est openai (Chat), basculez explicitement avec OpenAIChatCompletionsModel ; si c’est openai_response, un nom de modèle sous forme de chaîne fonctionne tel quel.
La classe OpenAI n’accepte que les familles qu’elle reconnaît et rejette les noms personnalisés de passerelle — utilisez OpenAILike (Python) ou déclarez explicitement les informations du modèle.
base_url n’est pas un paramètre du framework — c’est la variable d’environnement OPENAI_API_BASE, et le modèle a besoin du préfixe openai/.
Les noms de modèles inconnus produisent une erreur sur la liste par défaut — déclarez model_info explicitement pour contourner la vérification.
base_url passe par http_options.base_url (sans /v1) et la clé s’insère dans l’en-tête x-goog-api-key.