Integraciones de SDK y frameworks
Todos los SDK se conectan a GateLLM con los mismos tres pasos. Encuentre su SDK, fíjese en su convención de base_url y en su particularidad, y copie el patrón.
El gateway está orientado a protocolos: sea cual sea el SDK que use, siempre que hable OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, apuntar su base_url al gateway y cambiar a una clave de acceso le permite llamar a cualquier modelo configurado, incluidas llamadas entre protocolos a modelos de otros proveedores.
Apunte base_url al gateway
Por defecto https://your-gateway.gatellm.io; que incluya /v1 depende del SDK (cada ejemplo indica el valor exacto).
Cambie a una clave de acceso del gateway
No es una clave upstream sk-…; la misma clave de acceso se monta en la cabecera que espere su SDK.
Use el nombre del modelo del gateway
El que haya configurado en la consola, no el nombre oficial del proveedor.
Authorization: Bearer <key>x-api-key: <key>x-goog-api-key: <key>Matriz de selección de SDK
| SDK / framework | Lenguaje | Protocolo | Documentación |
|---|---|---|---|
SDK oficiales de proveedoresEjemplos en GitHub ↗ | |||
| OpenAI SDK | Python, Node.js | OpenAI | Ejemplos |
| Anthropic SDK | Python, Node.js | Anthropic | Ejemplos |
| Google GenAI SDK | Python, JavaScript | Gemini | Ejemplos |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | Ejemplos |
DashScope nativo | |||
| DashScope SDK | Python | DashScope | Ejemplos |
SDK y gateways unificadosEjemplos en GitHub ↗ | |||
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | Ejemplos |
| LiteLLM | Python | OpenAI-compatible | Ejemplos |
| Portkey | Node.js, Python | OpenAI-compatible | Ejemplos |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | Ejemplos |
| Semantic Kernel | Python, .NET | OpenAI-compatible | Ejemplos |
| Spring AI | Java | OpenAI-compatible | Ejemplos |
Frameworks de orquestaciónEjemplos en GitHub ↗ | |||
| LangChain | Python, TypeScript | OpenAI / Anthropic | Ejemplos |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | Ejemplos |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | Ejemplos |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | Ejemplos |
| AutoGen / AG2 | Python | OpenAI-compatible | Ejemplos |
| DSPy | Python | OpenAI-compatible | Ejemplos |
| Haystack | Python | OpenAI-compatible | Ejemplos |
| Llama Stack | Python | OpenAI-compatible | Ejemplos |
SDK de agentes | |||
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | Ejemplos |
| Claude Agent SDK | Python, TypeScript | Anthropic | Ejemplos |
| Pydantic AI | Python | OpenAI-compatible | Ejemplos |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | Ejemplos |
| Mastra | TypeScript | OpenAI-compatible | Ejemplos |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | Ejemplos |
| MCP SDK | Python, TypeScript | MCP | Ejemplos |
Tiempo real y audio | |||
| Realtime WebSocket | Any WS client | OpenAI Realtime | Ejemplos |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | Ejemplos |
Local / autoalojado | |||
| Ollama | REST | OpenAI-compatible (upstream) | Ejemplos |
| vLLM | REST | OpenAI-compatible (upstream) | Ejemplos |
| llama.cpp server | REST | OpenAI-compatible (upstream) | Ejemplos |
| SGLang | REST | OpenAI-compatible (upstream) | Ejemplos |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | Ejemplos |
| LM Studio | REST | OpenAI-compatible (upstream) | Ejemplos |
Particularidades
No es el nombre oficial del proveedor ni el ID del modelo upstream, sino el nombre que le dio en la consola. Un nombre incorrecto produce 404 model_not_found.
El SDK de OpenAI usa /v1; el SDK de Anthropic usa la raíz (añade /v1/messages); createAnthropic del Vercel AI SDK usa /v1 (añade /messages). Equivocarse añade o elimina un segmento de ruta.
Un max_tokens puede convertirse en max_output_tokens con un límite inferior (por ejemplo, ≥16) cuando el upstream es un modelo de protocolo Responses; un valor demasiado pequeño produce 400.
El contenido y las firmas de pensamiento de Claude / Gemini se pasan o se eliminan; tome el elemento con type == "text" del arreglo content y no asuma que content[0] es texto.
Llama a la API de Responses, no a Chat Completions. Si el upstream es openai (Chat), cambie explícitamente con OpenAIChatCompletionsModel; si es openai_response, un nombre de modelo como cadena funciona tal cual.
La clase OpenAI solo acepta familias que reconoce y rechaza nombres personalizados del gateway; use OpenAILike (Python) o declare la información del modelo explícitamente.
base_url no es un parámetro del framework: es la variable de entorno OPENAI_API_BASE, y el modelo necesita el prefijo openai/.
Los nombres de modelo desconocidos dan error con la lista predeterminada; declare model_info explícitamente para omitir la comprobación.
base_url se pasa mediante http_options.base_url (sin /v1) y la clave se monta en la cabecera x-goog-api-key.