Esc to close · ⌘K / Ctrl-K opens search anywhere
server-sent events वाचा आणि अंतिम usage chunk पकडा जेणेकरून प्रत्येक request चा खर्च निघेल.
SSE + usage chunkएडव्हान्स्डमध्यम8 min
streaming वापरकर्त्यांना tokens जसजसे तयार होतात तसतसे देते. बहुतांश gateways मध्ये अडचण ही आहे की तुम्ही token count गमावता. BharatRouter समर्थन करणाऱ्या providers वर stream_options.include_usage inject करते, म्हणून [DONE] आधीचा अंतिम chunk नेहमी एक usage block घेऊन जातो — तुम्हाला stream आणि खर्च दोन्ही मिळतात.
तुम्ही वापराल: stream: true + अंतिम usage chunk. संदर्भ: chat completions.
from openai import OpenAI
client = OpenAI(base_url="https://api.bharatrouter.com/v1", api_key="br-...")
stream = client.chat.completions.create(
model="gemma-4-e4b-it",
messages=[{"role": "user", "content": "Explain UPI in two lines"}],
stream=True,
stream_options={"include_usage": True},
)
usage = None
for chunk in stream:
if chunk.usage: # final chunk carries usage
usage = chunk.usage
elif chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print(f"\n\n[tokens: {usage.total_tokens}]")response हे text/event-stream आहे. आधी content deltas येतात; [DONE] आधीचा अगदी अंतिम data chunk रिकामे choices आणि भरलेले usage object ठेवतो. ज्या route ने serve केले ते आता देखील x-br-provider response header मध्ये आहे.
खर्च कमी करण्यासाठी आणि मोजण्यासाठी — दोन्ही एकाच कॉलमध्ये — खर्च प्लेबुक शी जोडा.
आणखी रेसिपी कुकबुक मध्ये पाहा, किंवा संपूर्णAPI reference पाहा.