Просмотр исходного кода

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

RedwindA 7 месяцев назад
Родитель
Сommit
b7c3ad0867
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      relay/channel/xai/text.go

+ 4 - 2
relay/channel/xai/text.go

@@ -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)