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}}
✉ Поддержка