Интеграции · обновлено 29.09.2026
AI-модели в Python через AI Gateway
официальный SDK OpenAI
AI Gateway полностью совместим с официальным Python-SDK OpenAI: меняются только base_url и ключ, весь остальной код — как в документации OpenAI. Один клиент даёт доступ ко всем моделям каталога — Claude, GPT, Gemini, DeepSeek — сменой параметра model.
Установка
bashbash
pip install openaiПервый запрос
chat.pypython
from openai import OpenAIclient = OpenAI(base_url="https://ai-gatewey.ru/v1",api_key="sk-aigate-ваш_ключ",)resp = client.chat.completions.create(model="deepseek/deepseek-v4-flash",messages=[{"role": "user", "content": "Привет!"}],)print(resp.choices[0].message.content)на заметку
Ключ храните в переменной окружения (
OPENAI_API_KEY подхватывается SDK автоматически), а не в коде — тогда api_key можно не передавать вовсе.Стриминг
Ответ частями через Server-Sent Events — параметр stream=True, как в оригинальном API:
stream.pypython
stream = client.chat.completions.create(model="deepseek/deepseek-v4-flash",messages=[{"role": "user", "content": "Расскажи о токенах"}],stream=True,)for chunk in stream:delta = chunk.choices[0].delta.contentif delta:print(delta, end="", flush=True)Function calling
Вызов инструментов работает прозрачно — выбирайте модель с поддержкой function calling (бейдж «инструменты» в каталоге):
tools.pypython
tools = [{"type": "function","function": {"name": "get_weather","description": "Погода в городе","parameters": {"type": "object","properties": {"city": {"type": "string"}},"required": ["city"],},},}]resp = client.chat.completions.create(model="anthropic/claude-sonnet-5.5",messages=[{"role": "user", "content": "Какая погода в Москве?"}],tools=tools,)print(resp.choices[0].message.tool_calls)Обработка ошибок
401— неверный или отозванный ключ: проверьте значение и что ключ активен в кабинете.402— нужна оплата: пуст баланс, исчерпана месячная квота, модель не входит в тариф, либо сработал лимит самого ключа (список моделей, потолок расхода, срок действия). Пополните баланс, смените тариф либо проверьте настройки ключа.429— превышен лимит запросов в минуту: снизьте темп и повторите с экспоненциальной паузой.5xx— сбой апстрима: шлюз сам повторяет запрос, резервные провайдеры модели подставляет апстрим, но свой retry с экспоненциальной паузой в проде не помешает.
errors.pypython
from openai import APIStatusError, RateLimitErrortry:resp = client.chat.completions.create(model="deepseek/deepseek-v4-flash",messages=[{"role": "user", "content": "Привет!"}],)except RateLimitError:... # превышен RPM: подождать и повторитьexcept APIStatusError as e:print(e.status_code, e.message)Какую модель выбрать
модельвход / 1 млнвыход / 1 млнконтекст
Частые вопросы
Работают ли LangChain и LlamaIndex?
Да — оба используют этот же SDK под капотом. Готовые инструкции: LangChain и LlamaIndex.
Есть ли асинхронный клиент?
Да, AsyncOpenAI с теми же параметрами base_url и api_key — весь код идентичен, но с await.
Как получить список моделей программно?
client.models.list() вернёт модели, доступные вашему ключу, с актуальными кодами.