Streaming
Потоковый режим позволяет получать ответ модели по мере генерации — токен за токеном. Это даёт ощущение реального времени и снижает задержку до первого токена.
Как включить
Добавьте параметр "stream": true в тело запроса:
curl https://api.quantadev.pro/v1/chat/completions \
-H "Authorization: Bearer sk-aisell-..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-7",
"messages": [{"role": "user", "content": "Привет!"}],
"stream": true
}'
Формат ответа
Ответ приходит в формате Server-Sent Events (SSE). Каждый чанк — это строка data: {...} с JSON-объектом. Поток завершается строкой data: [DONE].
data: {"choices":[{"delta":{"role":"assistant","content":""},"index":0}]}
data: {"choices":[{"delta":{"content":"При"},"index":0}]}
data: {"choices":[{"delta":{"content":"вет"},"index":0}]}
data: {"choices":[{"delta":{"content":"!"},"index":0}]}
data: {"choices":[{"delta":{},"finish_reason":"stop","index":0}]}
data: [DONE]
Использование в SDK
Большинство SDK поддерживают streaming из коробки:
import openai
client = openai.OpenAI(
api_key="sk-aisell-...",
base_url="https://api.quantadev.pro/v1",
)
stream = client.chat.completions.create(
model="claude-sonnet-4-7",
messages=[{"role": "user", "content": "Привет!"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Usage в streaming-режиме
Если вам нужна информация о потраченных токенах в streaming-режиме — добавьте stream_options: {include_usage: true}. Тогда в последнем чанке перед [DONE] придёт объект usage:
data: {"usage":{"prompt_tokens":15,"completion_tokens":42,"total_tokens":57}}