Интеграции SDK и фреймворков

Каждый SDK подключается к GateLLM одинаковыми тремя шагами. Найдите свой SDK, запомните его конвенцию base_url и подводный камень, затем скопируйте шаблон.

Шлюз ориентирован на протоколы: какой бы SDK вы ни использовали, если он говорит на OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, достаточно направить его base_url на шлюз и подставить ключ доступа, чтобы вызывать любую настроенную модель — включая межпротокольные вызовы моделей других производителей.

1

Направьте base_url на шлюз

По умолчанию https://your-gateway.gatellm.io — наличие /v1 зависит от SDK (в каждом примере указано точное значение).

2

Подставьте ключ доступа к шлюзу

Это не upstream-ключ sk-… — один и тот же ключ доступа подставляется в тот заголовок, который ожидает ваш SDK.

3

Используйте имя модели шлюза

То, которое вы задали в консоли, — а не официальное имя производителя.

Authorization: Bearer <key>
OpenAI · DashScope · универсально
Префикс Bearer без учёта регистра
x-api-key: <key>
Anthropic SDK
Authorization также принимается
x-goog-api-key: <key>
Gemini SDK
Authorization также принимается

Матрица выбора SDK

SDK / фреймворкЯзыкПротоколДокументация
Официальные SDK производителейПримеры на GitHub ↗
OpenAI SDKPython, Node.jsOpenAIПримеры
Anthropic SDKPython, Node.jsAnthropicПримеры
Google GenAI SDKPython, JavaScriptGeminiПримеры
OpenAI-compatible third partiesPython, Node.jsOpenAI-compatibleПримеры
Нативный DashScope
DashScope SDKPythonDashScopeПримеры
Унифицированные SDK и шлюзыПримеры на GitHub ↗
Vercel AI SDKTypeScriptOpenAI / AnthropicПримеры
LiteLLMPythonOpenAI-compatibleПримеры
PortkeyNode.js, PythonOpenAI-compatibleПримеры
Braintrust / LangbaseTypeScript, PythonOpenAI-compatibleПримеры
Semantic KernelPython, .NETOpenAI-compatibleПримеры
Spring AIJavaOpenAI-compatibleПримеры
Фреймворки оркестрацииПримеры на GitHub ↗
LangChainPython, TypeScriptOpenAI / AnthropicПримеры
LangGraphPython, TypeScriptOpenAI / AnthropicПримеры
LlamaIndexPython, TypeScriptOpenAI-compatibleПримеры
CrewAIPythonOpenAI-compatible (LiteLLM)Примеры
AutoGen / AG2PythonOpenAI-compatibleПримеры
DSPyPythonOpenAI-compatibleПримеры
HaystackPythonOpenAI-compatibleПримеры
Llama StackPythonOpenAI-compatibleПримеры
SDK для агентов
OpenAI Agents SDKPython, TypeScriptOpenAI ResponsesПримеры
Claude Agent SDKPython, TypeScriptAnthropicПримеры
Pydantic AIPythonOpenAI-compatibleПримеры
Google ADKPythonOpenAI-compatible (LiteLLM)Примеры
MastraTypeScriptOpenAI-compatibleПримеры
Microsoft Agent Framework.NET, PythonOpenAI-compatibleПримеры
MCP SDKPython, TypeScriptMCPПримеры
Реальное время и аудио
Realtime WebSocketAny WS clientOpenAI RealtimeПримеры
openai_audio (ASR / TTS)Python, Node.jsOpenAI audioПримеры
Локальные / self-hosted
OllamaRESTOpenAI-compatible (upstream)Примеры
vLLMRESTOpenAI-compatible (upstream)Примеры
llama.cpp serverRESTOpenAI-compatible (upstream)Примеры
SGLangRESTOpenAI-compatible (upstream)Примеры
Text Generation Inference (TGI)RESTOpenAI-compatible (upstream)Примеры
LM StudioRESTOpenAI-compatible (upstream)Примеры

Подводные камни

Имя модели должно совпадать с конфигурацией шлюза

Не официальное имя производителя и не ID модели в upstream, а то имя, которое вы задали в консоли. Неверное имя → 404 model_not_found.

Наличие /v1 в base_url зависит от SDK

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] — текст.

OpenAI Agents SDK по умолчанию использует /v1/responses

Он вызывает Responses API, а не Chat Completions. Если upstream — openai (Chat), явно переключитесь через OpenAIChatCompletionsModel; если openai_response, строковое имя модели работает как есть.

LlamaIndex проверяет имя модели по белому списку

Класс OpenAI принимает только известные ему семейства и отклоняет пользовательские имена шлюза — используйте OpenAILike (Python) или явно объявите информацию о модели.

CrewAI под капотом управляется LiteLLM

base_url здесь не параметр фреймворка, а переменная окружения OPENAI_API_BASE, а к имени модели нужен префикс openai/.

AutoGen требует явного model_info

Неизвестные имена моделей вызывают ошибку в списке по умолчанию — объявите model_info явно, чтобы обойти проверку.

Google GenAI SDK указывает на корень

base_url задаётся через http_options.base_url (без /v1), а ключ подставляется в заголовок x-goog-api-key.

FAQ