From 072cd31ef83c6120148894f6803520c74af017b3 Mon Sep 17 00:00:00 2001 From: Hugo Gonzalez Date: Thu, 22 Jan 2026 20:12:19 -0800 Subject: [PATCH] feat(openai): Add token usage logging for non-streaming completions Log prompt_tokens, completion_tokens, and total_tokens from OpenAI API responses when usage data is available. This provides visibility into token consumption for observability and cost tracking. Addresses Issues #2119, #2002 Co-Authored-By: Claude Opus 4.5 --- packages/openai/src/chat.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/openai/src/chat.ts b/packages/openai/src/chat.ts index 5ee4e96ff..b32ca8650 100644 --- a/packages/openai/src/chat.ts +++ b/packages/openai/src/chat.ts @@ -203,6 +203,13 @@ export class OpenAIChatModel implements IChatModel { if (!(completion instanceof Stream)) { message = completion.choices[0].message; + if (completion.usage) { + this._log.debug('Token usage', { + prompt_tokens: completion.usage.prompt_tokens, + completion_tokens: completion.usage.completion_tokens, + total_tokens: completion.usage.total_tokens, + }); + } } else { for await (const chunk of completion) { if (!chunk.choices.length) continue;