Skip to main content
Чтобы получать ответ по мере генерации, передай "stream": true. Ответ приходит как SSE — последовательность data:-чанков в OpenAI-формате, завершается строкой data: [DONE].
from openai import OpenAI

client = OpenAI(base_url="https://api.ethereal.llc/v1", api_key="eth-...")

stream = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Напиши хайку про код"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Формат чанка

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":"Прив"},"index":0,"finish_reason":null}]}

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}

data: [DONE]
Биллинг при стриминге считается по фактическому числу сгенерированных токенов — ровно как при обычном запросе.