Эндпоинты
POST /v1/chat/completions
Вторичный эндпойнт, повторяющий конвенцию chat-completions. Все модели и все правила пула кредитов из /v1/messages применяются точно так же — отличаются только формы запроса и ответа.
Когда использовать этот эндпойнт
Используй /v1/chat/completions, когда у тебя уже есть клиент, который ждёт именно такую форму запроса/ответа, и ты хочешь подключиться без переписывания вызова. Для нового кода рекомендуем /v1/messages — там полноценная поддержка контент-блоков, инструментов, размышления и изображений; этот эндпойнт показывает только их подмножество.
Базовый вызов
curl https://caicaini.com/v1/chat/completions \
-H "Authorization: Bearer cai_api_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "caicaini/auto",
"messages": [
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "Two reasons to use TypeScript over JS in 2026?"}
],
"max_tokens": 256
}'Поля запроса
| Поле | Тип | Описание |
|---|---|---|
| modelобязательно | string | Один из пяти виртуальных id. По умолчанию для общего трафика — caicaini/auto. |
| messagesобязательно | array | developers.docs.chatCompletions.fieldMessagesDesc |
| max_tokens | integer | Жёсткий потолок на токены завершения. Очень рекомендуется задавать. |
| temperature | number 0–2 | По умолчанию 1. |
| top_p | number 0–1 | Nucleus sampling. |
| stop | string | string[] | До четырёх стоп-последовательностей. |
| stream | boolean | Когда true, сервер отдаёт SSE-чанки. См. Стриминг. |
| tools | Tool[] | Описания функций в формате tools chat-completions. См. Инструменты. |
| tool_choice | "none" | "auto" | object | Ограничивает выбор инструмента. |
| response_format | { type: "json_object" } | Заставляет модель вернуть валидный JSON. Подкрепи это указанием схемы в системной подсказке. |
| user | string | Идентификатор конечного пользователя. Прокидывается в инструменты антифрода и отчётности. |
Ответ
ответ · 200 OK
{
"id": "chatcmpl_01H8fkx2N3p4q5r6s7t8u9v",
"object": "chat.completion",
"created": 1746748800,
"model": "caicaini/auto",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "1) Catch class-of-bug at compile time. 2) Editor knows your shape."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 31,
"completion_tokens": 22,
"total_tokens": 53,
"credits_consumed": 27
}
}choices[0].message.contentсодержит текстовый ответ ассистента.choices[0].finish_reason— одно изstop,length,tool_calls,content_filter.usage.credits_consumed— авторитетное значение и совпадает с тем, что увидишь в эквивалентном вызове/v1/messages.
Стриминг на этом эндпойнте
Стриминг использует формат чанков chat-completions: SSE-поток событий chat.completion.chunk, оканчивающийся литеральным фреймом data: [DONE]. Полный справочник событий и примеры разбора — на странице Стриминг.