🐛 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 ea3545cc7e
commit b7c3ad0867

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)