From 222e08178e3df36b6c5c2b09fd0060734c901e63 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Wed, 1 Oct 2025 16:08:06 -0300 Subject: [PATCH] fix(openai): do not return 0 tokens just because we have no "choices" --- openai/language_model_hooks.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/openai/language_model_hooks.go b/openai/language_model_hooks.go index 2a47615080cc0801d4973e688983945147827aa8..209b532ab4e5fa405a7d8b825b2fb1bdb6c6c8fd 100644 --- a/openai/language_model_hooks.go +++ b/openai/language_model_hooks.go @@ -179,18 +179,15 @@ func DefaultMapFinishReasonFunc(choice openai.ChatCompletionChoice) ai.FinishRea } func DefaultUsageFunc(response openai.ChatCompletion) (ai.Usage, ai.ProviderOptionsData) { - if len(response.Choices) == 0 { - return ai.Usage{}, nil - } - choice := response.Choices[0] completionTokenDetails := response.Usage.CompletionTokensDetails promptTokenDetails := response.Usage.PromptTokensDetails // Build provider metadata providerMetadata := &ProviderMetadata{} + // Add logprobs if available - if len(choice.Logprobs.Content) > 0 { - providerMetadata.Logprobs = choice.Logprobs.Content + if len(response.Choices) > 0 && len(response.Choices[0].Logprobs.Content) > 0 { + providerMetadata.Logprobs = response.Choices[0].Logprobs.Content } // Add prediction tokens if available