Тема
Язык

Chat Completions

/v1/chat/completions — чат-эндпоинт, совместимый с OpenAI. Параметры model, messages, stream, temperature. Потоковая передача по SSE. Примеры запросов и ответов на curl, Python (openai) и Node.

OpenAI-совместимый эндпоинт чата. Работает с любым OpenAI SDK — просто замените base_url на https://getvibeapi.com/v1.

POSThttps://getvibeapi.com/v1/chat/completions

Параметры тела запроса

GetVibe реализует совместимый контракт Chat Completions, а не побайтовую сквозную передачу: он проверяет доступ, разрешает публичный id модели, применяет лимиты и может нормализовать поддерживаемые поля запроса. Ответы и ошибки также нормализуются и не гарантируют специфичные для вышестоящего провайдера поля или заголовки. Для большинства задач первых трёх — model, messages и stream — достаточно.

Basic — работают на всех моделях
ПараметрТипОписание
modelreq.stringНазвание модели из каталога, например gpt-6.1-sol или claude-opus-5.5.
messagesreq.arrayМассив сообщений { role, content }. Роли: system, user, assistant.
streambooleantrue — передавать ответ потоком по SSE.
max_tokensintegerМаксимум токенов в ответе. Рекомендуем не меньше 64: при слишком малом значении (например, ≤ 16) модель может упереться в лимит (finish_reason: length) ещё до первого видимого токена и вернуть пустой ответ. Если нужен короткий результат — попросите об этом в промпте и оставьте max_tokens с запасом.
temperaturenumberСлучайность вывода, 0–2. По умолчанию 1.
Продвинутый — поддержка зависит от модели
ПараметрТипОписание
top_pnumbermodel-dependentNucleus sampling (0–1). Альтернатива temperature; менять оба параметра одновременно не рекомендуется.
top_knumberClaudeTop-K выборка. Только для моделей Anthropic.
seedintegerGPTФиксирует результат для воспроизводимости. Серия GPT; в остальных случаях игнорируется.
stopstring | arraymodel-dependentСтоп-последовательность: одна строка или список до 4 строк.
frequency_penaltynumberGPT · ClaudeШтраф за повторение токенов по частоте (-2 до 2).
presence_penaltynumberGPT · ClaudeШтраф за уже встречавшиеся токены (-2 до 2).
logprobsboolean—Ни один из текущих маршрутов не возвращает логарифмы вероятностей: параметр удаляется перед отправкой, о чём сообщается в заголовке x-getvibe-warnings (param_dropped:logprobs); запрос не отклоняется.
top_logprobsinteger—Удаляется вместе с logprobs, о чём сообщается в x-getvibe-warnings.
logit_biasobjectGPTID токена → смещение логита (-100 до 100).
userstringmodel-dependentИдентификатор конечного пользователя (передаётся выше по цепочке для отслеживания лимитов).
response_formatobjectGPT · ClaudeПринудительный вывод в JSON. Подробнее →
tools / tool_choicearray / 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-* variantsor-*Проксирует запрос через отдельный агрегатор. Поддержка параметров зависит от конкретного провайдера. tool_choice: "required" и некоторые параметры сэмплирования могут не работать.
Неизвестный параметр игнорируется провайдером или возвращает 400. Если параметр важен — используйте вариант :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.

Chat Completions API GetVibe — примеры на Python и curl | GetVibe API