usage is null on every chunk of a streamed responseToken counts appear for non-streamed calls and never for streamed onesYour own cost tracking reads zero while the provider bills normallyDer Verbrauch steht erst fest, wenn die Generierung endet, also gibt es für die frühen Chunks nichts einzutragen. Statt einen Platzhalter zu senden, lässt die API das Feld null und hängt einen letzten Chunk an, sobald die Zahlen existieren.
Dieser letzte Chunk hat ein leeres choices-Array. Code, der aufhört zu lesen, sobald er finish_reason sieht, oder der Chunks ohne Delta überspringt, wirft genau den Chunk weg, den er braucht.
Nicht jede OpenAI-kompatible Implementierung unterstützt die Option. Wo sie fehlt, schätzen Sie entweder lokal oder lesen die maßgeblichen Zahlen aus dem Log des Anbieters.
Fordern Sie den Verbrauch an und schauen Sie auf die letzte Zeile des Streams:
curl -N 'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' -H 'Content-Type: application/json' \
-d '{"model":"MODEL","stream":true,"stream_options":{"include_usage":true},"messages":[{"role":"user","content":"hi"}]}' | tail -3
Der Chunk vor [DONE] sollte ein gefülltes usage-Objekt mit leerem choices-Array enthalten.
Zuletzt geprüft am 2026-10-01. Geschrieben aus Problemen, die auf einem laufenden OpenAI-kompatiblen Gateway diagnostiziert wurden – nicht von anderen Seiten zusammengetragen.