AI API

Ответ модели в формате OpenAI

POST/v1/chat/completions

Совместим с OpenAI Chat Completions: штатный пакет openai работает, если указать base_url="https://llm.vcpay.ru/v1". Модель выбирается полем model — именем из каталога.

С "stream": true ответ приходит событиями SSE по мере генерации, последним событием — data: [DONE].

Здесь перечислены поля, работу которых мы проверяем. Остальные поля формата OpenAI модель может принять, но их поведение зависит от модели и не входит в наш контракт.

Тело запроса

application/json
model
string
*
Имя модели из каталога, например claude-sonnet-5.
Пример:claude-sonnet-5
messages[]
array of objects
*
Диалог по порядку, от первой реплики к последней.
role
string
*
Кто говорит. system — инструкция модели.
Возможные значения
content
string
*
Текст реплики.
max_tokens
integer
Потолок токенов ответа. Размышления модели входят в него.
Диапазон:
>= 1
stream
boolean
Отдавать ответ событиями SSE по мере генерации.
По умолчанию:
false

Ответ

200OK
Ответ модели. При "stream": true — поток событий text/event-stream, каждое событие — фрагмент ответа.
id
string
*
Идентификатор ответа.
object
string
*
Всегда chat.completion.
created
integer
*
Момент ответа, Unix-время в секундах.
model
string
*
Модель, которая ответила. Может прийти полным именем вендора, например anthropic/claude-haiku-4.5.
choices[]
array of objects
*
Варианты ответа. Без особых настроек — один.
index
integer
*
Номер варианта.
message
object
*
Реплика модели.
role
string
*
Всегда assistant.
content
string
*
Текст ответа.
finish_reason
string
*
Почему ответ закончился. stop — модель договорила, length — упёрлись в max_tokens.
usage
object
*
Токены запроса. По ним считается расход.
prompt_tokens
integer
*
Токенов на входе.
completion_tokens
integer
*
Токенов на выходе, включая размышления модели. У моделей с размышлениями их заметно больше, чем видно по тексту ответа.
total_tokens
integer
*
Сумма входа и выхода.
Ответ модели в формате OpenAI
curl "https://llm.vcpay.ru/v1/chat/completions" \  -H "Authorization: Bearer ВАШ_КЛЮЧ" \  -H "Content-Type: application/json" \  -d '{  "model": "claude-sonnet-5",  "messages": [    {      "role": "user",      "content": "Привет! Ответь одним словом."    }  ]}'
Ответ 200
{  "id": "gen-1760261400-abc123",  "object": "chat.completion",  "created": 1760261400,  "model": "claude-sonnet-5",  "choices": [    {      "index": 0,      "finish_reason": "stop",      "message": {        "role": "assistant",        "content": "Привет!"      }    }  ],  "usage": {    "prompt_tokens": 12,    "completion_tokens": 3,    "total_tokens": 15  }}