Интеграции SDK и фреймворков
Каждый SDK подключается к GateLLM одинаковыми тремя шагами. Найдите свой SDK, запомните его конвенцию base_url и подводный камень, затем скопируйте шаблон.
Шлюз ориентирован на протоколы: какой бы SDK вы ни использовали, если он говорит на OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, достаточно направить его base_url на шлюз и подставить ключ доступа, чтобы вызывать любую настроенную модель — включая межпротокольные вызовы моделей других производителей.
Направьте base_url на шлюз
По умолчанию https://your-gateway.gatellm.io — наличие /v1 зависит от SDK (в каждом примере указано точное значение).
Подставьте ключ доступа к шлюзу
Это не upstream-ключ sk-… — один и тот же ключ доступа подставляется в тот заголовок, который ожидает ваш SDK.
Используйте имя модели шлюза
То, которое вы задали в консоли, — а не официальное имя производителя.
Authorization: Bearer <key>x-api-key: <key>x-goog-api-key: <key>Матрица выбора SDK
| SDK / фреймворк | Язык | Протокол | Документация |
|---|---|---|---|
Официальные SDK производителейПримеры на GitHub ↗ | |||
| OpenAI SDK | Python, Node.js | OpenAI | Примеры |
| Anthropic SDK | Python, Node.js | Anthropic | Примеры |
| Google GenAI SDK | Python, JavaScript | Gemini | Примеры |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | Примеры |
Нативный DashScope | |||
| DashScope SDK | Python | DashScope | Примеры |
Унифицированные SDK и шлюзыПримеры на GitHub ↗ | |||
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | Примеры |
| LiteLLM | Python | OpenAI-compatible | Примеры |
| Portkey | Node.js, Python | OpenAI-compatible | Примеры |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | Примеры |
| Semantic Kernel | Python, .NET | OpenAI-compatible | Примеры |
| Spring AI | Java | OpenAI-compatible | Примеры |
Фреймворки оркестрацииПримеры на GitHub ↗ | |||
| LangChain | Python, TypeScript | OpenAI / Anthropic | Примеры |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | Примеры |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | Примеры |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | Примеры |
| AutoGen / AG2 | Python | OpenAI-compatible | Примеры |
| DSPy | Python | OpenAI-compatible | Примеры |
| Haystack | Python | OpenAI-compatible | Примеры |
| Llama Stack | Python | OpenAI-compatible | Примеры |
SDK для агентов | |||
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | Примеры |
| Claude Agent SDK | Python, TypeScript | Anthropic | Примеры |
| Pydantic AI | Python | OpenAI-compatible | Примеры |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | Примеры |
| Mastra | TypeScript | OpenAI-compatible | Примеры |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | Примеры |
| MCP SDK | Python, TypeScript | MCP | Примеры |
Реальное время и аудио | |||
| Realtime WebSocket | Any WS client | OpenAI Realtime | Примеры |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | Примеры |
Локальные / self-hosted | |||
| Ollama | REST | OpenAI-compatible (upstream) | Примеры |
| vLLM | REST | OpenAI-compatible (upstream) | Примеры |
| llama.cpp server | REST | OpenAI-compatible (upstream) | Примеры |
| SGLang | REST | OpenAI-compatible (upstream) | Примеры |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | Примеры |
| LM Studio | REST | OpenAI-compatible (upstream) | Примеры |
Подводные камни
Не официальное имя производителя и не ID модели в upstream, а то имя, которое вы задали в консоли. Неверное имя → 404 model_not_found.
OpenAI SDK принимает /v1; Anthropic SDK принимает корень (он сам добавляет /v1/messages); createAnthropic из Vercel AI SDK принимает /v1 (он добавляет /messages). Ошибка добавляет или удаляет сегмент пути.
max_tokens может стать max_output_tokens с нижней границей (например, ≥16), если upstream — модель протокола Responses; слишком маленькое значение → 400.
Содержимое и подписи thinking от Claude / Gemini передаются как есть или удаляются — берите элемент content-массива с type == "text", не предполагайте, что content[0] — текст.
Он вызывает Responses API, а не Chat Completions. Если upstream — openai (Chat), явно переключитесь через OpenAIChatCompletionsModel; если openai_response, строковое имя модели работает как есть.
Класс OpenAI принимает только известные ему семейства и отклоняет пользовательские имена шлюза — используйте OpenAILike (Python) или явно объявите информацию о модели.
base_url здесь не параметр фреймворка, а переменная окружения OPENAI_API_BASE, а к имени модели нужен префикс openai/.
Неизвестные имена моделей вызывают ошибку в списке по умолчанию — объявите model_info явно, чтобы обойти проверку.
base_url задаётся через http_options.base_url (без /v1), а ключ подставляется в заголовок x-goog-api-key.