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