Timeweb Cloud AI Gateway — единый OpenAI-compatible API для разных моделей
Timeweb Cloud AI Gateway — единый OpenAI-compatible API для разных моделей
26 августа 2026 года Timeweb Cloud сообщил о росте AI Gateway — сервиса, который предоставляет единый API к моделям разных поставщиков. В публичном анонсе говорится почти о 70 моделях; точный каталог меняется, поэтому перед интеграцией его нужно получать из панели или через API.
AI Gateway полезен, когда приложение уже умеет работать с OpenAI-compatible API и нужно:
- оплачивать использование в рублях;
- переключать модели без отдельного SDK для каждого поставщика;
- сравнивать несколько моделей в одном приложении;
- централизовать API-ключи, лимиты и статистику;
- подключить существующий OpenAI-compatible клиент или инструмент.
Это API к моделям, а не готовая агентская платформа. Логику RAG, MCP, tools, память, маршрутизацию и оценку качества приложение строит самостоятельно.
Не смешивать два API Timeweb Cloud
У Timeweb Cloud есть отдельный продукт AI-агентов и AI Gateway.
| Вариант | Объект работы | RAG / MCP | Выбор модели в запросе |
|---|---|---|---|
| API готового AI-агента | настроенный в панели агент | может быть частью агента | модель задаётся конфигурацией агента |
| AI Gateway | конкретная модель | нет готовой логики | передаётся в поле model |
Если нужно просто заменить Base URL существующего OpenAI-клиента и самостоятельно управлять логикой, нужен AI Gateway.
Базовое подключение
Официальная документация указывает Base URL:
https://api.timeweb.ai/v1
Пример на Python:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TIMEWEB_AI_TOKEN"],
base_url="https://api.timeweb.ai/v1",
)
models = client.models.list()
for model in models.data:
print(model.id)
После получения точного model.id можно отправить запрос:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TIMEWEB_AI_TOKEN"],
base_url="https://api.timeweb.ai/v1",
)
response = client.chat.completions.create(
model="MODEL_ID_FROM_MODELS_LIST",
messages=[
{
"role": "system",
"content": "Отвечай кратко и указывай допущения.",
},
{
"role": "user",
"content": "Составь checklist проверки резервной копии сайта.",
},
],
)
print(response.choices[0].message.content)
Не копируйте имя модели из маркетинговой страницы навсегда. Получите список через models.list() и зафиксируйте проверенный ID в конфигурации приложения.
API-ключи
AI Gateway использует отдельные ключи, не связанные с обычными API-ключами аккаунта.
Документация указывает:
- один ключ стоит 1 ₽ в месяц;
- можно выбрать срок действия 30, 60 или 90 дней, один год либо бессрочно;
- ключ показывается один раз после создания;
- для ключа доступны статистика и лимит потребления токенов.
Для production:
- храните ключ в secret manager или переменной окружения;
- создавайте отдельный ключ на проект и среду;
- не используйте один ключ для staging и production;
- задайте лимит расходов;
- регулярно ротируйте ключи;
- удаляйте ключ после закрытия проекта;
- не выводите Authorization header в логи.
История диалога
AI Gateway не хранит историю чата как готовую пользовательскую память. При Chat Completions клиент передаёт нужный контекст в массиве messages.
ваша БД / session store
↓
формирование messages
↓
AI Gateway
↓
ответ модели
Это даёт контроль над хранением, но ответственность тоже остаётся на приложении:
- ограничение размера истории;
- удаление персональных данных;
- TTL;
- разграничение пользователей;
- защита от подмешивания чужого контекста;
- защита логов;
- право на удаление данных.
Responses API
Документация также приводит пример client.responses.create(). Поддержка методов зависит от конкретной модели.
response = client.responses.create(
model="MODEL_ID_FROM_MODELS_LIST",
instructions="Отвечай кратко и по существу.",
input="Объясни разницу backup и snapshot.",
)
print(response.output_text)
Наличие endpoint не гарантирует одинаковое поведение всех моделей. Для каждой модели нужно отдельно проверить:
- Responses API;
- Chat Completions;
- streaming;
- tool calling;
- structured output / JSON Schema;
- reasoning-поля;
- изображения и аудио;
- ограничения контекста;
- максимальный output.
Embeddings
В документации AI Gateway указана модель embeddings:
openai/text-embedding-3-large
Пример:
response = client.embeddings.create(
model="openai/text-embedding-3-large",
input="Текст для семантического поиска",
)
vector = response.data[0].embedding
print(len(vector))
Перед использованием в production проверьте размерность, цену, лимиты batch, нормализацию, стабильность версии модели и стратегию повторной индексации при смене embeddings.
Что AI Gateway не делает за приложение
Официальная документация отделяет AI Gateway от готовых агентов. В нём нет автоматически настроенных:
- RAG;
- MCP;
- базы знаний;
- долгосрочной памяти;
- бизнес-логики;
- evaluation pipeline;
- маршрутизации по качеству и цене;
- fallback на другую модель;
- защиты от prompt injection в ваших данных.
Также не поддерживаются fine-tuning и Video API. Доступность изображений, аудио и других модальностей зависит от каталога и конкретных endpoints.
Проверить OpenAI-совместимость, а не верить названию
OpenAI-compatible не означает полную идентичность OpenAI API. Сделайте контрактные тесты именно на используемых функциях.
Минимальная матрица:
| Проверка | Что сравнить |
|---|---|
| Chat Completions | поля ответа, finish reason, usage |
| Streaming | порядок chunks, финальное событие, ошибки |
| Tool calling | schema, arguments, несколько tools |
| JSON output | валидность JSON и соблюдение schema |
| Responses API | output items, reasoning, previous response |
| Embeddings | размерность, batch и ошибки |
| Multimodal | формат изображений/аудио и лимиты |
| Errors | HTTP-коды, тело ошибки, retryability |
| Usage | совпадение токенов в ответе и биллинге |
Smoke-test ошибок
Нужно специально проверить:
- неверный ключ;
- истёкший ключ;
- неизвестный model ID;
- превышение лимита;
- слишком большой контекст;
- timeout;
- upstream 5xx;
- разрыв streaming-соединения;
- повтор запроса после сетевой ошибки.
Не повторяйте автоматически неидемпотентные действия агента только потому, что LLM-запрос завершился timeout.
Multi-model не означает автоматический fallback
Единый API облегчает смену модели, но сам факт наличия каталога не создаёт отказоустойчивость.
Приложению нужны собственные правила:
primary model
↓ timeout / 429 / 5xx
classifier ошибки
↓
fallback model
↓
проверка совместимости ответа
↓
метрика degraded mode
При fallback учитывайте:
- другой context window;
- другой tool calling;
- иную цену;
- другую политику безопасности;
- отличия в качестве русского языка;
- отсутствие нужной модальности;
- изменение формата structured output.
Производительность
Для каждой используемой модели измеряйте:
- DNS/TLS/connect latency;
- time to first token;
- полное время ответа;
- tokens per second;
- p50/p95/p99;
- долю 429 и 5xx;
- стабильность streaming;
- время в разные часы;
- отдельные маршруты из РФ и зарубежных локаций.
Тест одной модели не описывает весь gateway: upstream-поставщики, регионы и профили нагрузки могут различаться.
Тарификация
На продуктовой странице указана оплата за фактически использованные токены, а цена показывается для каждой модели. Кроме токенов учитывайте:
- 1 ₽/мес за каждый API-ключ;
- входящие и исходящие токены;
- reasoning tokens, если модель их тарифицирует;
- изображения и аудио;
- повторные запросы;
- длинную историю диалога;
- embeddings и повторную индексацию;
- fallback-запросы;
- тестовый и staging-трафик.
Полезная метрика — не только ₽ за миллион токенов, а стоимость успешной задачи:
стоимость всех попыток
÷
число задач, прошедших проверку качества
Персональные данные и договорные условия
В форме подключения отображается согласие на трансграничную передачу персональных данных. До отправки реальных пользовательских данных нужно проверить:
- договор и политику обработки;
- перечень upstream-моделей и операторов;
- маршруты передачи данных;
- хранение request/response logs;
- возможность отключить logging;
- сроки хранения;
- 152-ФЗ и требования конкретного проекта;
- коммерческую тайну;
- запрет передачи секретов и credentials.
Фраза «gateway не хранит историю диалога» не равна гарантии отсутствия всех технических логов на каждом уровне цепочки. Для чувствительного проекта это нужно подтверждать документами провайдера.
Checklist теста
- [ ] Получен актуальный список моделей через API.
- [ ] Зафиксированы проверенные model IDs.
- [ ] Созданы отдельные ключи для staging и production.
- [ ] Настроены лимиты расходов и алерты.
- [ ] Проверены Chat Completions, streaming и Responses API.
- [ ] Проверены tool calling и JSON Schema, если они нужны.
- [ ] Проверены embeddings и стратегия переиндексации.
- [ ] Измерены p50/p95/p99 и time to first token.
- [ ] Обработаны 429, timeout и upstream 5xx.
- [ ] Fallback протестирован на совместимость, а не только на доступность.
- [ ] Проверены договор, logging и трансграничная передача.
- [ ] Секреты не попадают в prompts и логи.
- [ ] Есть evaluation-набор для сравнения моделей.
- [ ] Посчитана стоимость успешной задачи.
Влияние на категорию
Timeweb Cloud остаётся в категории «Рискованные / спорные». AI Gateway заметно расширяет платформу и может быть удобен для рублёвой оплаты и multi-model интеграций, но новый managed-сервис не отменяет уже зафиксированные инфраструктурные инциденты провайдера.
AI Gateway следует тестировать отдельно от VPS: доступность API моделей, upstream-зависимости и биллинг имеют другой профиль риска.
