🐛 fix: Add nil check for xaiResponse.Usage before calculating CompletionTokens

This commit is contained in:
RedwindA 2025-07-14 21:40:15 +08:00
parent f30a0f7783
commit 3368b26880

View File

@ -90,8 +90,10 @@ func xAIHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Response
if err != nil {
return nil, types.NewError(err, types.ErrorCodeBadResponseBody)
}
xaiResponse.Usage.CompletionTokens = xaiResponse.Usage.TotalTokens - xaiResponse.Usage.PromptTokens
xaiResponse.Usage.CompletionTokenDetails.TextTokens = xaiResponse.Usage.CompletionTokens - xaiResponse.Usage.CompletionTokenDetails.ReasoningTokens
if xaiResponse.Usage != nil {
xaiResponse.Usage.CompletionTokens = xaiResponse.Usage.TotalTokens - xaiResponse.Usage.PromptTokens
xaiResponse.Usage.CompletionTokenDetails.TextTokens = xaiResponse.Usage.CompletionTokens - xaiResponse.Usage.CompletionTokenDetails.ReasoningTokens
}
// new body
encodeJson, err := common.Marshal(xaiResponse)