Перейти к содержимому
Главная

Chat Completions

Chat Completions использует OpenAI-совместимый формат запроса messages. Он подходит для многоходовых диалогов, role-based prompts и сценариев генерации текста, где нужна история сообщений. Непотоковый запрос возвращает полный результат одним ответом; потоковый запрос возвращает инкрементальный текст через SSE.

POST {BASE_URL}/chat/completions

Типовые поля: model, messages, temperature, max_tokens и stream. Если stream не передан или равен false, endpoint возвращает один JSON-ответ; если stream: true, ответ возвращается как SSE-события.

Окно терминала
curl -sS "${BASE_URL}/chat/completions" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{
"role": "system",
"content": "You are a concise technical assistant."
},
{
"role": "user",
"content": "Give three API integration checks."
}
],
"temperature": 0.3,
"max_tokens": 512
}'
Окно терминала
curl -N "${BASE_URL}/chat/completions" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{
"role": "user",
"content": "Give three API integration checks."
}
],
"stream": true,
"stream_options": {
"include_usage": true
}
}'
{
"id": "chatcmpl_xxx",
"object": "chat.completion",
"created": 1770000000,
"model": "gpt-5.5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "1. Confirm the Base URL and authentication settings..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 42,
"total_tokens": 66
}
}
data: {"id":"chatcmpl_xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"1."}}]}
data: {"id":"chatcmpl_xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":" Confirm the Base URL and authentication settings"}}]}
data: {"id":"chatcmpl_xxx","object":"chat.completion.chunk","choices":[{"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":24,"completion_tokens":42,"total_tokens":66}}
data: [DONE]
  • Разбирайте каждую строку SSE data: по мере получения.
  • Закройте поток после получения [DONE].
  • Если клиенту нужны данные usage, передайте stream_options.include_usage=true.
  • Если клиент отключился, запрос всё равно может завершиться и попасть в биллинг.