Streaming
Baik antarmuka OpenAI (/v1/chat/completions) maupun Anthropic (/v1/messages) mendukung streaming melalui Server-Sent Events. Responses API (/v1/responses) melakukan streaming response.* event-nya sendiri; lihat Responses API. Streaming adalah pengaturan default yang direkomendasikan untuk apa pun dengan prompt yang panjang, output yang panjang, atau batas token yang tinggi — ini menghindari timeout permintaan dan memungkinkan Anda menampilkan token saat tiba.
OpenAI-style stream
curl -N https://api.uberllm.dev/v1/chat/completions \
-H "Authorization: Bearer $UBERLLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-flash",
"stream": true,
"messages": [{"role": "user", "content": "Count to five, one per line."}]
}'
Responsnya adalah urutan dari data: baris, masing-masing adalah chat completion chunk, diakhiri dengan data: [DONE].
from openai import OpenAI
client = OpenAI(base_url="https://api.uberllm.dev/v1", api_key="ull_...")
with client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
stream=True,
messages=[{"role": "user", "content": "Write a short poem."}],
) as stream:
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
Pencatatan penggunaan
UberLLM memasukkan stream_options: {"include_usage": true} untuk upstream yang mendukungnya, sehingga chunk terakhir membawa objek usage dengan jumlah token prompt dan completion, dan cost_usd: berapa biaya permintaan ini, dalam dolar AS (biaya yang dikenakan penyedia untuk itu). Ketika upstream tidak mengirimkan chunk penggunaan, UberLLM menambahkan satu sebelum data: [DONE]. Pada /v1/messages biayanya ada di usage dari event message_delta.
Permintaan Anda ditagihkan dengan biaya yang dilaporkan marketplace untuk panggilan tersebut; ketika data penggunaan tidak tersedia, gateway kembali ke estimasi tokenizer dan menandai permintaan sebagai diestimasi di log aktivitas Anda. Header stream dikirim sebelum biaya diketahui, sehingga stream tidak memiliki header X-UberLLM-Cost-USD: baca usage.cost_usd.
Pembatalan
Jika Anda terputus di tengah streaming, gateway membatalkan permintaan upstream dan hanya menagih token yang benar-benar di-stream. Anda tidak akan pernah ditagih untuk respons penuh yang tidak Anda terima, dan tidak ada saldo cadangan yang tertahan.
Keep-alives
Gateway mengirimkan : ping comment segera saat connect dan keep-alives berkala, agar streams yang berjalan lama dapat bertahan dari proxy idle timeouts.