Инференс по API
Модель крутится на стороне платформы, вы платите за вызов, а не за простой своего железа.
AIR для разработчиков
Together AI — инференс открытых моделей по API, из России закрытый оплатой. Задачи инференса — чат, код, картинки — закрывает OpenAI-совместимый AIR API: один ключ, рубли, без VPN.
Chat Completions API
Запрос к моделям для кода через OpenAI-совместимый API
Переношу сервис с чужого OpenAI-совместимого SDK. Что менять кроме base_url и ключа?
Ничего: роли, параметры и формат ответа те же. Поменял base_url на https://api.air.fail/v1, id модели взял из каталога — тесты зеленые.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "deepseek",
messages: [{ role: "user", content: "Переношу сервис с чужого OpenAI-совместимого SDK. Что менять кроме base_url и ключа?" }],
});
Вот логи ingress за ночь, собери топ ошибок 5xx с примером запроса на каждую группу.
Три группы: таймауты апстрима, 502 в окне деплоя и падения ретраев на одном роуте. Ниже сводка с долями и по одному примеру запроса.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "claude",
messages: [{ role: "user", content: "Вот логи ingress за ночь, собери топ ошибок 5xx с примером запроса на каждую группу." }],
});
Переведи README библиотеки на русский. Имена флагов, сигнатуры и код не трогай.
Перевел, флаги и сигнатуры оставил как в оригинале. Термины свел к одному варианту и приложил глоссарий в конце.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "qwen",
messages: [{ role: "user", content: "Переведи README библиотеки на русский. Имена флагов, сигнатуры и код не трогай." }],
});
Напиши pytest на вебхук оплаты: успех, отказ банка, повторная доставка события.
Собрал три теста и фикстуру с моком провайдера. Повтор ловится по идемпотентному ключу — проверка на дубль в базе включена.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.air.fail/v1",
apiKey: process.env.AIR_API_KEY,
});
const reply = await client.chat.completions.create({
model: "gpt",
messages: [{ role: "user", content: "Напиши pytest на вебхук оплаты: успех, отказ банка, повторная доставка события." }],
});
Together AI и более 80 моделей в одном сервисе
Платформа продает не собственную модель, а доступ к чужому железу и удобную обертку вокруг открытых весов.
Модель крутится на стороне платформы, вы платите за вызов, а не за простой своего железа.
Штатный клиент OpenAI работает после смены baseURL, код приложения не переписывается.
Дообученная на своих данных модель поднимается как отдельный эндпоинт и зовется тем же клиентом.
Аренда машин под свои задачи: обучение с нуля, тяжелые батчи, приватный контур.
Модель можно забрать и увезти на свой сервер — вендор-лока на уровне весов нет.
Посредники и виртуальные карты добавляют комиссию, чужой курс и еще одну точку отказа. Одиночке это терпимо, команде — нет: серую оплату не провести через бухгалтерию.
Биллинг принимает зарубежные карты; карта российского банка, включая «Мир», не проходит ни при регистрации, ни при пополнении баланса.
Запросы с российских адресов платформы этого класса отклоняют на своей стороне, а проверка идет не только по IP: смотрят платежный профиль, реквизиты, документы юрлица.
ключ, который отключится из-за платежной проверки посреди релиза, в боевой сервис не ставят.
AIR — российский агрегатор нейросетей с OpenAI-совместимым API: один ключ из кабинета открывает весь каталог, оплата рублями.
Разбор логов, выжимка из документации, извлечение полей — обычный запрос chat/completions.
Генерация тестов, ревью диффа, миграция скриптов: те же роли и параметры, что в OpenAI SDK.
Иллюстрации и ассеты генерируются тем же ключом, отдельный аккаунт под изображения не нужен.
OpenAI-совместимый эндпоинт
Эндпоинт OpenAI-совместимый: baseURL https://api.air.fail/v1 и штатный SDK вместо самописной обвязки.
Один ключ на каталог
Один ключ открывает весь каталог: текст, изображения, видео и звук без отдельных аккаунтов на каждый тип.
Работа без VPN
Без VPN: сервис российский, API отвечает напрямую из офисной сети и с CI-серверов.
Документация на русском
Документация на русском: https://air-docs.readthedocs.io/ru/latest/ — параметры, коды ошибок, примеры запросов.
Мост нужен не для демо, а для сервиса, который держит нагрузку и не отваливается из-за платежной проверки.
Один ключ на все
Чат, код и картинки идут через один эндпоинт: секретов в CI меньше, ротация проще.
Миграция строкой
Переезд с чужого SDK — это baseURL и ключ; параметры, ретраи и обвязка ошибок остаются.
Оплата внутри РФ
Рубли, карта российского банка, закрывающие документы для бухгалтерии.
Минимальный вызов — curl и Python. Тело запроса такое же, как у любого OpenAI-совместимого провайдера.
curl — без SDK, из любого окружения
curl https://api.air.fail/v1/chat/completions \
-H "Authorization: Bearer $AIR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek",
"messages": [
{"role": "user", "content": "Собери топ ошибок 5xx из логов ingress за ночь"}
]
}'
openai — меняется только base_url и ключ
from openai import OpenAI
client = OpenAI(
base_url="https://api.air.fail/v1",
api_key="AIR_API_KEY",
)
reply = client.chat.completions.create(
model="qwen", # id модели — из каталога в кабинете
messages=[
{"role": "system", "content": "Отвечай кодом без пояснений"},
{"role": "user", "content": "pytest на вебхук оплаты: успех, отказ банка, повтор"},
],
)
print(reply.choices[0].message.content)
Открытые модели в каталоге отвечают за тот же класс задач, ради которого берут инференс-платформу.
| Модель | Сильная сторона | Когда выбирать |
|---|---|---|
| DeepSeek | Рассуждение и код, экономичный вызов | Поток задач: ревью, тесты, рутинные правки |
| Qwen | Многоязычность и длинный контекст | Русские и китайские тексты, большие документы |
| GLM | Дисциплина в следовании инструкции | Структурированный вывод, JSON по схеме, агентные цепочки |
| Kimi | Очень длинный контекст | Разбор большой кодовой базы или пачки документов |
| FLUX | Генерация изображений | Иллюстрации и ассеты тем же ключом |
Один сквозной пример — переезд рабочего кода на AIR API без переписывания.
«Замени в клиенте endpoint и ключ: baseURL https://api.air.fail/v1, ключ из кабинета AIR» — все вызовы идут через новый эндпоинт, параметры запросов не тронуты.
«Пройди по конфигу и замени идентификаторы моделей на каталожные: чат — claude, черновики — deepseek» — идентификатор меняется строкой, логика выбора модели остается вашей.
«Прогони интеграционные тесты и сравни ответы на двадцати боевых запросах» — формат ответов совпадает с OpenAI-протоколом, правок в парсерах не потребовалось.
переезд занимает вечер, откат — те же две строки конфига обратно.
Email или Яндекс ID; иностранный номер и зарубежная карта не нужны ни на одном шаге.
В кабинете это одна кнопка; ключ кладите в переменную окружения, а не в репозиторий.
В клиенте OpenAI укажите https://api.air.fail/v1 и свой ключ — остальной код не трогайте.
Прогоните боевой промпт на паре моделей каталога и зафиксируйте id в конфиге.
Регистрация бесплатна, стартовых лимитов после нее хватает, чтобы прогнать свои промпты и сравнить модели. Дальше — оплата по факту использования или подписка, прайс в кабинете.
Нет. AIR — российский сервис: сайт и API открываются напрямую, в том числе из офисных сетей и с CI-серверов, где VPN запрещен политиками безопасности.
Картой российского банка, «Мир» включительно, в рублях. Посредники, чужой курс и виртуальные карты не нужны, для юрлица есть закрывающие документы.
Нет. Через AIR API вызываются готовые модели каталога — это инференс, а не обучение. Дообучение под свои данные и аренда кластеров решаются у инфраструктурного провайдера.
BaseURL, ключ и id модели. Схема запроса совпадает с OpenAI API, поэтому ретраи и логирование остаются как есть.
Линейки DeepSeek, Qwen, GLM, Kimi и другие открытые модели каталога, плюс закрытые флагманы и генерация изображений тем же ключом. Актуальный список — в кабинете, он обновляется чаще страницы.