Документация
Всё, что нужно для работы с Ocelotiq API.
Обзор
Ocelotiq — это платформа, предоставляющая единый OpenAI-совместимый API для доступа к различным AI-моделям: GPT-4o, Claude, Gemini, Llama и другим.
Вам не нужно заводить аккаунты у каждого провайдера — достаточно одного API-ключа Ocelotiq.
https://ai.ocelotiq.ru/v1application/jsonБыстрый старт
- Зарегистрируйтесь и подтвердите email.
- Перейдите в API-ключи и создайте ключ. Скопируйте его — он показывается один раз.
- Убедитесь, что на балансе есть средства (раздел Личный кабинет).
- Отправьте первый запрос:
from openai import OpenAI
client = OpenAI(
base_url="https://ai.ocelotiq.ru/v1",
api_key="ocelotiq_ваш_ключ",
)
response = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Привет!"}],
)
print(response.choices[0].message.content)curl https://ai.ocelotiq.ru/v1/chat/completions \
-H "Authorization: Bearer ocelotiq_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [
{"role": "user", "content": "Привет!"}
]
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai.ocelotiq.ru/v1",
apiKey: "ocelotiq_ваш_ключ",
});
const response = await client.chat.completions.create({
model: "openai/gpt-4o-mini",
messages: [{ role: "user", content: "Привет!" }],
});
console.log(response.choices[0].message.content);Аутентификация
Все запросы к AI API (ai.ocelotiq.ru) авторизуются через пользовательский API-ключ в заголовке:
API-ключи создаются в личном кабинете. Вы можете создать несколько ключей для разных проектов.
Chat Completions
/v1/chat/completionsОсновной эндпоинт для генерации текста. Полностью совместим с форматом OpenAI Chat Completions API.
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
| model | string | Slug модели, например openai/gpt-4o-mini |
| messages | array | Массив сообщений с полями role и content |
| stream | boolean | Включить стриминг ответа (SSE). По умолчанию false |
| temperature | number | Температура генерации (0–2). Необязательный |
| max_tokens | number | Максимум токенов в ответе. Необязательный |
| top_p | number | Nucleus sampling. Необязательный |
Роли сообщений
system— системная инструкция для моделиuser— сообщение пользователяassistant— предыдущий ответ модели (для контекста)
{
"model": "openai/gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "Ты полезный ассистент."
},
{
"role": "user",
"content": "Объясни что такое API"
}
],
"temperature": 0.7
}{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1741540000,
"model": "openai/gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "API (Application Programming Interface) — это..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 156,
"total_tokens": 180
}
}Стриминг
Передайте "stream": true в запросе, чтобы получать ответ по частям через Server-Sent Events (SSE).
Формат полностью совместим с OpenAI — каждый чанк приходит как data: {...}, а конец потока обозначается data: [DONE].
stream = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Расскажи историю"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Привет"}}]}
data: [DONE]Поиск в интернете
Некоторые модели поддерживают режим онлайн-поиска — модель автоматически ищет актуальную информацию в интернете перед генерацией ответа.
Как включить
Добавьте суффикс :online к названию модели в параметре model.
Обычный режим: openai/gpt-4o-mini
С поиском: openai/gpt-4o-mini:online
Когда использовать
- Вопросы о текущих событиях, новостях, погоде
- Запросы, требующие актуальных данных (цены, курсы, статистика)
- Поиск информации, которая могла появиться после обучения модели
:online стоимость запроса может быть выше, так как модель дополнительно выполняет поиск в интернете. response = client.chat.completions.create(
model="openai/gpt-4o-mini:online",
messages=[{"role": "user", "content": "Какие новости сегодня?"}],
)
print(response.choices[0].message.content)curl https://ai.ocelotiq.ru/v1/chat/completions \
-H "Authorization: Bearer ocelotiq_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini:online",
"messages": [
{"role": "user", "content": "Какой курс доллара сейчас?"}
]
}'Список моделей
/v1/modelsВозвращает список доступных моделей в формате OpenAI. Не требует аутентификации.
Актуальный каталог моделей с ценами смотрите на странице Модели.
{
"object": "list",
"data": [
{
"id": "openai/gpt-4o-mini",
"object": "model",
"created": 1741540000,
"owned_by": "ocelotiq"
}
]
}Responses API
/v1/responses Совместимый subset OpenAI Responses API. Позволяет использовать SDK, которые работают через /v1/responses вместо /v1/chat/completions.
Поддерживаемые параметры
model— slug моделиinput— строка, объект сообщения или массивinstructions— системная инструкцияtemperature,top_p,max_output_tokens
stream: true), previous_response_id, инструменты и reasoning пока не поддержаны в этом эндпоинте. response = client.responses.create(
model="openai/gpt-4o-mini",
input="Что такое машинное обучение?",
)
print(response.output_text)Ошибки
Все ошибки возвращаются в едином формате:
| Код | Описание |
|---|---|
| 400 | Невалидный JSON, неизвестная модель или некорректные параметры |
| 401 | Отсутствует или неверный API-ключ |
| 402 | Недостаточно средств на балансе |
| 403 | Email не подтверждён |
| 502 | Нет доступных upstream-ключей — все провайдеры недоступны |
Биллинг и цены
Баланс и все расчёты ведутся в копейках (1 рубль = 100 копеек).
Как считается стоимость
- Текстовые модели — цена за 1 000 000 токенов, отдельно для входных (prompt) и выходных (completion) токенов. Актуальные цены для каждой модели показаны на странице Модели.
- Модели генерации изображений — фиксированная цена за одну картинку.
Пример расчёта
Модель: openai/gpt-4o-mini
Ввод: 1 500 коп. / 1M токенов, Вывод: 6 000 коп. / 1M токенов
Запрос: 5 000 входных + 2 000 выходных токенов
Стоимость: (5000 / 1M × 1500) + (2000 / 1M × 6000) = 7.5 + 12 = 19.5 коп. ≈ 20 коп.
Отслеживание расходов
В личном кабинете доступны детальная помесячная аналитика и логи каждого запроса с разбивкой по модели, токенам и стоимости.
SDK и клиенты
Ocelotiq совместим с любым OpenAI-совместимым SDK или HTTP-клиентом. Достаточно заменить base_url на https://ai.ocelotiq.ru/v1.
Python — openai
pip install openaiNode.js — openai
npm install openaiLangChain
ChatOpenAI(openai_api_base="https://ai.ocelotiq.ru/v1", ...)cURL / HTTP
Любой HTTP-клиент с JSON-запросамиЛимиты
- Максимальное количество API-ключей на аккаунт не ограничено.
- Запросы ограничены вашим балансом — пока есть средства, можно делать запросы.
- Максимальный размер тела запроса зависит от модели и её контекстного окна.
- При возникновении ошибки
502— все upstream-провайдеры временно недоступны, повторите запрос через несколько секунд.
Остались вопросы? Пишите на admin@ocelotiq.ru