openai-совместимый api — шлюз, который принимает запросы в формате openai и направляет их к разным поставщикам текстовых моделей. на входе и выходе вы всегда работаете с протоколом openai, а конвертация форматов и маршрутизация выполняются на нашей стороне.
все маршруты совместимы с официальной спецификацией openai, включая форматы запросов, ответов и ошибок. поэтому официальный sdk работает без изменений — меняются только адрес и ключ.
базовый адрес
https://api.airakurs.ru/v1
клиент openai сам добавляет /v1 к базовому адресу. в sdk указывайте https://api.airakurs.ru/v1 целиком либо https://api.airakurs.ru — зависит от того, дописывает ли выбранная библиотека версию. у официального пакета openai в поле base_url ставят адрес с /v1.
доступные эндпоинты
| http | путь | назначение |
|---|---|---|
GET | /v1/models | список моделей и их метаданные |
GET | /v1/models/{id} | данные одной модели |
POST | /v1/chat/completions | генерация текста |
POST | /v1/responses | формат openai responses |
эмбеддинги, изображения, аудио и видео в первой версии не принимаются.
адресация моделей
имя модели имеет вид вендор/название.
| вендор | пример идентификатора |
|---|---|
| openai | openai/gpt-5-mini |
| anthropic | anthropic/claude-sonnet-4.5 |
google/gemini-3.5-flash | |
| xai | x-ai/grok-4.20 |
короткое имя без вендора на /v1/chat/completions считается моделью openai. для остальных вендоров указывайте идентификатор целиком. подробности — в статье модели.
пример
curl "https://api.airakurs.ru/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <КЛЮЧ>" \
-d '{
"model": "google/gemini-3.5-flash",
"messages": [
{"role": "user", "content": "Привет!"}
]
}'from openai import OpenAI
client = OpenAI(api_key="<КЛЮЧ>", base_url="https://api.airakurs.ru/v1")
print(
client.chat.completions.create(
model="google/gemini-3.5-flash",
messages=[{"role": "user", "content": "Привет!"}],
)
.choices[0]
.message.content
)что дальше
- генерация текста — роли, параметры, ответ.
- родной формат — когда запрос уходит без перевода.
частые вопросы
нужно ли менять код при переходе с api openai?
нет. меняются базовый адрес и ключ. пути, поля запроса и структура ответа остаются теми же.
работает ли стриминг?
да. в теле запроса указывается "stream": true. разбор потока — в статье стриминг.