ГлавнаяДокументация
Меню документации — Стриминг (SSE)

Стриминг (SSE)

Все текстовые модели поддерживают Server-Sent Events. Передайте "stream": true в теле запроса — ответ будет приходить чанками в формате OpenAI.

Python

from openai import OpenAI

client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
with client.chat.completions.create(
    model="claude-opus-4",
    messages=[{"role": "user", "content": "Объясни квантовые вычисления"}],
    stream=True,
) as stream:
    for chunk in stream:
        delta = chunk.choices[0].delta.content or ""
        print(delta, end="", flush=True)

JavaScript / TypeScript

import OpenAI from "openai";

const client = new OpenAI({ apiKey: "rk_live_...", baseURL: "https://api.ranvik.ru/v1" });
const stream = client.chat.completions.stream({
    model: "gpt-4o",
    messages: [{ role: "user", content: "Объясни квантовые вычисления" }],
});
for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
console.log(await stream.finalChatCompletion());

cURL (raw SSE)

curl https://api.ranvik.ru/v1/chat/completions \
  -H "Authorization: Bearer rk_live_..." \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -d '{
    "model": "claude-opus-4",
    "messages": [{"role":"user","content":"Объясни квантовые вычисления"}],
    "stream": true,
    "stream_options": {"include_usage": true}
  }'

Каждый SSE-эвент имеет вид data: {...}. Последний чанк перед data: [DONE] содержит объект usage с реальным числом токенов (если передан stream_options.include_usage: true).