Chat Completions
/v1/chat/completions — чат-эндпоинт, совместимый с OpenAI. Параметры model, messages, stream, temperature. Потоковая передача по SSE. Примеры запросов и ответов на curl, Python (openai) и Node.
OpenAI-совместимый эндпоинт чата. Работает с любым OpenAI SDK — просто замените base_url на https://getvibeapi.com/v1.
Параметры тела запроса
GetVibe реализует совместимый контракт Chat Completions, а не побайтовую сквозную передачу: он проверяет доступ, разрешает публичный id модели, применяет лимиты и может нормализовать поддерживаемые поля запроса. Ответы и ошибки также нормализуются и не гарантируют специфичные для вышестоящего провайдера поля или заголовки. Для большинства задач первых трёх — model, messages и stream — достаточно.
| Параметр | Тип | Описание |
|---|---|---|
modelreq. | string | Название модели из каталога, например gpt-6.1-sol или claude-opus-5.5. |
messagesreq. | array | Массив сообщений { role, content }. Роли: system, user, assistant. |
stream | boolean | true — передавать ответ потоком по SSE. |
max_tokens | integer | Максимум токенов в ответе. Рекомендуем не меньше 64: при слишком малом значении (например, ≤ 16) модель может упереться в лимит (finish_reason: length) ещё до первого видимого токена и вернуть пустой ответ. Если нужен короткий результат — попросите об этом в промпте и оставьте max_tokens с запасом. |
temperature | number | Случайность вывода, 0–2. По умолчанию 1. |
| Параметр | Тип | Описание |
|---|---|---|
top_p | numbermodel-dependent | Nucleus sampling (0–1). Альтернатива temperature; менять оба параметра одновременно не рекомендуется. |
top_k | numberClaude | Top-K выборка. Только для моделей Anthropic. |
seed | integerGPT | Фиксирует результат для воспроизводимости. Серия GPT; в остальных случаях игнорируется. |
stop | string | arraymodel-dependent | Стоп-последовательность: одна строка или список до 4 строк. |
frequency_penalty | numberGPT · Claude | Штраф за повторение токенов по частоте (-2 до 2). |
presence_penalty | numberGPT · Claude | Штраф за уже встречавшиеся токены (-2 до 2). |
logprobs | boolean— | Ни один из текущих маршрутов не возвращает логарифмы вероятностей: параметр удаляется перед отправкой, о чём сообщается в заголовке x-getvibe-warnings (param_dropped:logprobs); запрос не отклоняется. |
top_logprobs | integer— | Удаляется вместе с logprobs, о чём сообщается в x-getvibe-warnings. |
logit_bias | objectGPT | ID токена → смещение логита (-100 до 100). |
user | stringmodel-dependent | Идентификатор конечного пользователя (передаётся выше по цепочке для отслеживания лимитов). |
response_format | objectGPT · Claude | Принудительный вывод в JSON. Подробнее → |
tools / tool_choice | array / stringGPT · Claude | Вызов функций. Подробнее → |
Значки в столбце «Support»: GPT — только серия GPT, Claude — только модели Anthropic, GPT · Claude — оба семейства, model-dependent — смотрите документацию этой модели.
Поддержка параметров по вариантам маршрута
Одну и ту же модель могут обслуживать разные маршруты (варианты :1, :2, …). Маршруты различаются по цене, скорости и набору поддерживаемых параметров.
| Параметр | Тип | Описание |
|---|---|---|
Default variant (:1) | basic | Полный набор параметров OpenAI: temperature, top_p, seed, stop, penalties, logprobs, tools, response_format, потоковая передача с блоком usage. |
Subscription variants (:2, :3…) | advanced | Набор параметров совпадает с базовым, но маршрут использует другую инфраструктуру. Отдельные параметры могут не поддерживаться — мы отмечаем это в описании варианта. |
or-* variants | or-* | Проксирует запрос через отдельный агрегатор. Поддержка параметров зависит от конкретного провайдера. tool_choice: "required" и некоторые параметры сэмплирования могут не работать. |
:1 (по умолчанию) или проверьте поддержку в описании варианта на странице Models.Пример запроса
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [
{"role": "user", "content": "Hello! Who are you?"}
]
}'Пример ответа
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hi! I'm an assistant available through GetVibe API."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 14,
"total_tokens": 26
}
}Потоковая передача (SSE)
С "stream": true ответ приходит потоком Server-Sent Events: события data: … с дельтами, завершающиеся data: [DONE].
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Count to three"}]
}'Финальный чанк с usage
Последний чанк перед data: [DONE] содержит пустой choices: [] и поле usage со статистикой по токенам. Используйте его для биллинга — не суммируйте дельты вручную.
data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}
data: [DONE]Каждый нестриминговый ответ, стоимость которого можно оценить, содержит заголовок ответа x-pv-cost-rub. Тела потоковых ответов по умолчанию не содержат pv_cost_rub; отправьте x-pv-cost: 1, чтобы добавить стоимость в финальное событие использования этого протокола. Это оценка по мере возможности; фактическое списание смотрите в истории запросов GET /v1/generations.
Совместимость
Эндпоинт совместим с OpenAI SDK (Python, Node и другими), Codex CLI и Claude Code. Claude Code работает через /v1/messages с заголовком x-api-key — см. Messages и Responses.