From e5814228106cc6c7adeaa3730a830da8fb236193 Mon Sep 17 00:00:00 2001 From: CaIon Date: Fri, 22 Aug 2025 17:33:20 +0800 Subject: [PATCH] fix: update response body handling in OpenAI relay format --- relay/channel/openai/relay-openai.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/relay/channel/openai/relay-openai.go b/relay/channel/openai/relay-openai.go index 0debe48f..cce9235b 100644 --- a/relay/channel/openai/relay-openai.go +++ b/relay/channel/openai/relay-openai.go @@ -216,7 +216,16 @@ func OpenaiHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Respo switch info.RelayFormat { case types.RelayFormatOpenAI: - if forceFormat || usageModified { + if usageModified { + var bodyMap map[string]interface{} + err = common.Unmarshal(responseBody, &bodyMap) + if err != nil { + return nil, types.NewOpenAIError(err, types.ErrorCodeBadResponseBody, http.StatusInternalServerError) + } + bodyMap["usage"] = simpleResponse.Usage + responseBody, _ = common.Marshal(bodyMap) + } + if forceFormat { responseBody, err = common.Marshal(simpleResponse) if err != nil { return nil, types.NewError(err, types.ErrorCodeBadResponseBody)