OpenAI-совместимый API
Codexius реализует подмножество OpenAI API. Любой клиент, поддерживающий OpenAI, работает «из коробки» после смены base URL и ключа.
Базовый адрес и аутентификация
| Base URL | https://codexius.ru/api/v1 |
|---|---|
| Заголовок | Authorization: Bearer cdx_••• |
| Content-Type | application/json |
Chat Completions
Эндпоинт POST /v1/chat/completions. Поддерживается stream: true, вызовы инструментов (tool_calls) и системные сообщения.
POST https://codexius.ru/api/v1/chat/completions
Authorization: Bearer cdx_•••
Content-Type: application/json
{
"model": "gpt-5.4",
"messages": [
{ "role": "system", "content": "Отвечай кратко." },
{ "role": "user", "content": "Объясни, что такое vector store" }
],
"temperature": 0.4,
"stream": false
}Стриминг (SSE)
Если задано stream: true, ответ приходит чанками в формате Server-Sent Events. Это работает в openai SDK без изменений.
stream = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Расскажи о Codexius"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)Вызовы инструментов
Поддерживается стандартный синтаксис OpenAI. Передавайте tools, получайте tool_calls в ответе и отправляйте результаты в следующем запросе с ролью tool.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получить погоду по городу",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Какая погода в Москве?"}],
tools=tools,
)Изображения
Эндпоинт POST /v1/images/generations с моделью gpt-image-2. Тарификация — поштучно, не по токенам.
Дальше
- Anthropic API — если хотите Claude напрямую.
- Ошибки и лимиты.
- Готовые рецепты для openai SDK.