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.

1

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).

2

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.

3

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>
OpenAI · DashScope · générique
Le préfixe Bearer est insensible à la casse
x-api-key: <key>
SDK Anthropic
Authorization est également accepté
x-goog-api-key: <key>
SDK Gemini
Authorization est également accepté

Matrice de sélection des SDK

SDK / frameworkLangageProtocoleDocs
SDK officiels des fournisseursExemples GitHub ↗
OpenAI SDKPython, Node.jsOpenAIExemples
Anthropic SDKPython, Node.jsAnthropicExemples
Google GenAI SDKPython, JavaScriptGeminiExemples
OpenAI-compatible third partiesPython, Node.jsOpenAI-compatibleExemples
Natif DashScope
DashScope SDKPythonDashScopeExemples
SDK et passerelles unifiésExemples GitHub ↗
Vercel AI SDKTypeScriptOpenAI / AnthropicExemples
LiteLLMPythonOpenAI-compatibleExemples
PortkeyNode.js, PythonOpenAI-compatibleExemples
Braintrust / LangbaseTypeScript, PythonOpenAI-compatibleExemples
Semantic KernelPython, .NETOpenAI-compatibleExemples
Spring AIJavaOpenAI-compatibleExemples
Frameworks d’orchestrationExemples GitHub ↗
LangChainPython, TypeScriptOpenAI / AnthropicExemples
LangGraphPython, TypeScriptOpenAI / AnthropicExemples
LlamaIndexPython, TypeScriptOpenAI-compatibleExemples
CrewAIPythonOpenAI-compatible (LiteLLM)Exemples
AutoGen / AG2PythonOpenAI-compatibleExemples
DSPyPythonOpenAI-compatibleExemples
HaystackPythonOpenAI-compatibleExemples
Llama StackPythonOpenAI-compatibleExemples
SDK d’agents
OpenAI Agents SDKPython, TypeScriptOpenAI ResponsesExemples
Claude Agent SDKPython, TypeScriptAnthropicExemples
Pydantic AIPythonOpenAI-compatibleExemples
Google ADKPythonOpenAI-compatible (LiteLLM)Exemples
MastraTypeScriptOpenAI-compatibleExemples
Microsoft Agent Framework.NET, PythonOpenAI-compatibleExemples
MCP SDKPython, TypeScriptMCPExemples
Temps réel et audio
Realtime WebSocketAny WS clientOpenAI RealtimeExemples
openai_audio (ASR / TTS)Python, Node.jsOpenAI audioExemples
Local / auto-hébergé
OllamaRESTOpenAI-compatible (upstream)Exemples
vLLMRESTOpenAI-compatible (upstream)Exemples
llama.cpp serverRESTOpenAI-compatible (upstream)Exemples
SGLangRESTOpenAI-compatible (upstream)Exemples
Text Generation Inference (TGI)RESTOpenAI-compatible (upstream)Exemples
LM StudioRESTOpenAI-compatible (upstream)Exemples

Pièges

Le nom du modèle doit correspondre à la configuration de la passerelle

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.

La présence de /v1 dans base_url varie selon le SDK

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.

Les champs sont traduits et contraints d’un protocole à l’autre

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.

Les blocs de réflexion sont encapsulés par la passerelle

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.

Le SDK OpenAI Agents utilise /v1/responses par défaut

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.

LlamaIndex valide le nom du modèle par rapport à une liste d’autorisation

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.

CrewAI est piloté par LiteLLM en interne

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/.

AutoGen exige un model_info explicite

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.

Le SDK Google GenAI pointe vers la racine

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.

FAQ