Streaming
Senast uppdaterad:
På denna sida
Sätt stream: true så levereras svaret token-för-token via server-sent events
(SSE) — standard OpenAI-format, så SDK:ernas inbyggda streaming fungerar direkt.
python
from openai import OpenAI
client = OpenAI(api_key="sk-st-your-key", base_url="https://api.staik.se/v1")
stream = client.chat.completions.create(
model="qwen3.6:35b-a3b",
messages=[{"role": "user", "content": "Skriv en haiku om Stockholm."}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Chunk-format
Varje SSE-event är en data:-rad med en JSON-chunk; strömmen avslutas med
data: [DONE]:
text
data: {"choices":[{"delta":{"content":"Snö"},"index":0}], ...}
data: {"choices":[{"delta":{"content":" faller"},"index":0}], ...}
data: [DONE]- Inkrementell text kommer i
choices[0].delta.content - Med thinking-aliasen streamas
resonemanget separat i
choices[0].delta.reasoning - Tool calls kommer som ett komplett
delta.tool_callsnär anropet är klart. Text före anropet strömmas som vanligt
Anthropic-endpointen
/v1/messages streamar i Anthropic-format i stället:
message_start, content_block_delta, message_stop.
Responses-endpointen
/v1/responses streamar i OpenAI:s Responses-format:
response.created, response.output_text.delta, response.completed med flera.
Verktygsanrop kommer som färdiga items, se
Streaming på Responses.
Långa svar
Streaming rekommenderas för allt interaktivt — första token kommer så fort modellen börjar generera, i stället för att hela svaret buffras.