OpenAI API из Беларуси: подключение за 10 минут без VPN
У OpenAI нет ни белорусских карт, ни региона Belarus в списке поддерживаемых стран. Поэтому «прямое» подключение из Минска обычно заканчивается на этапе оплаты или первого запроса. Хорошая новость: сам API — это обычный HTTPS-интерфейс, и если перед вами стоит шлюз, который говорит на том же диалекте, ваш код этого даже не заметит. В этом гайде — полный цикл подключения через AIIN: от регистрации до продакшн-нюансов.
Что такое AIIN и почему код менять не придётся
AIIN — OpenAI-совместимый LLM-шлюз, размещённый в Беларуси. «Совместимый» означает буквально: те же endpoint'ы (/v1/chat/completions, /v1/models), тот же формат запросов и ответов, тот же SSE-стриминг. Единственное отличие — базовый URL https://api.aiin.by/v1 и ключ AIIN вместо ключа OpenAI. За шлюзом — модели OpenAI, Anthropic, Google и других провайдеров, доступные через один баланс в BYN.
Шаг 1. Аккаунт и API-ключ
- Зарегистрируйтесь в кабинете AIIN (Google OAuth или email).
- Пополните баланс в BYN — для старта хватает пакета 10 BYN.
- Выпустите API-ключ в кабинете. Храните его в переменной окружения
AIIN_API_KEY, а не в коде.
Шаг 2. Первый запрос на curl
curl https://api.aiin.by/v1/chat/completions \
-H "Authorization: Bearer $AIIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Привет из Беларуси!"}]
}'
Ответ — стандартный объект OpenAI с choices[0].message.content. Если вы видите его — интеграция уже работает.
Шаг 3. Python и JavaScript
Официальный SDK OpenAI подключается сменой одной строки — base_url:
from openai import OpenAI
client = OpenAI(
base_url="https://api.aiin.by/v1",
api_key=os.environ["AIIN_API_KEY"],
)
resp = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Кратко: что такое LLM-шлюз?"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.aiin.by/v1",
apiKey: process.env.AIIN_API_KEY,
});
const resp = await client.chat.completions.create({
model: "openai/gpt-4o-mini",
messages: [{ role: "user", content: "Hello AIIN" }],
});
console.log(resp.choices[0].message.content);
Миграция с прямого OpenAI API: что меняется
| Аспект | Прямой OpenAI | Через AIIN |
|---|---|---|
| base_url | https://api.openai.com/v1 | https://api.aiin.by/v1 |
| Авторизация | ключ OpenAI | ключ AIIN (Bearer) |
| Оплата | зарубежная карта, USD | баланс в BYN, пакеты 10/50/200 |
| Модели | только OpenAI | OpenAI, Anthropic, Google и др. |
| Streaming / tools / JSON mode | да | да, параметры проксируются |
Справочник ошибок
| Код | Причина | Что делать |
|---|---|---|
| 401 | неверный или просроченный ключ | перевыпустите ключ в кабинете |
| 402 | недостаточно средств на балансе | пополните баланс в BYN |
404 unknown_model | модель не из каталога AIIN | выберите alias из каталога моделей |
| 429 | лимит провайдера | повторите с backoff; шлюз сам пробует запасные маршруты |
| 5xx | сбой апстрима | повторите запрос; при повторении — support@aiin.by |
Частые вопросы
Нужна ли зарубежная карта для оплаты OpenAI API?
Нет. AIIN принимает пополнение в BYN: баланс списывается за токены по цене модели, зарубежная карта и аккаунт OpenAI не нужны.
Чем отличается ключ AIIN от ключа OpenAI?
Ключ AIIN — это ключ единого шлюза: он открывает доступ ко всем моделям каталога (OpenAI, Anthropic, Google и др.), а не только к моделям OpenAI.
Поддерживаются ли function calling и JSON mode?
Да, параметры tools, tool_choice и response_format проксируются как есть — совместимость на уровне OpenAI API.
Попробуйте за 10 минут
Регистрация, пополнение в BYN и первый запрос — без VPN и зарубежных карт.
Открыть кабинет