Меню документации — Стриминг (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).