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 }'response = client.chat.completions.create( 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,)
print(response.choices[0].message.content)Потоковый пример запроса
Заголовок раздела «Потоковый пример запроса»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 } }'stream = client.chat.completions.create( model="gpt-5.5", messages=[ {"role": "user", "content": "Give three API integration checks."}, ], stream=True, stream_options={"include_usage": True},)
for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="")Непотоковый пример ответа
Заголовок раздела «Непотоковый пример ответа»{ "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. - Если клиент отключился, запрос всё равно может завершиться и попасть в биллинг.