From 6db7a84787675c8505cac0aabc238f1c336057fd Mon Sep 17 00:00:00 2001 From: CaIon <1808837298@qq.com> Date: Fri, 27 Jun 2025 21:40:36 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20replace=20direct=20respon?= =?UTF-8?q?se=20body=20closure=20with=20common.CloseResponseBodyGracefully?= =?UTF-8?q?=20for=20improved=20error=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This update standardizes the closure of HTTP response bodies across multiple stream handlers, enhancing error management and resource cleanup. The new method ensures that any errors during closure are handled gracefully, preventing potential request termination issues. --- relay/channel/ali/text.go | 5 +---- relay/channel/baidu/relay-baidu.go | 5 +---- relay/channel/cloudflare/relay_cloudflare.go | 5 +---- relay/channel/palm/relay-palm.go | 5 +---- relay/channel/tencent/relay-tencent.go | 5 +---- relay/channel/xai/text.go | 6 +----- relay/channel/zhipu/relay-zhipu.go | 5 +---- 7 files changed, 7 insertions(+), 29 deletions(-) diff --git a/relay/channel/ali/text.go b/relay/channel/ali/text.go index 566615334f..fda8a7f478 100644 --- a/relay/channel/ali/text.go +++ b/relay/channel/ali/text.go @@ -183,10 +183,7 @@ func aliStreamHandler(c *gin.Context, resp *http.Response) (*dto.OpenAIErrorWith return false } }) - err := resp.Body.Close() - if err != nil { - return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), nil - } + common.CloseResponseBodyGracefully(resp) return nil, &usage } diff --git a/relay/channel/baidu/relay-baidu.go b/relay/channel/baidu/relay-baidu.go index d59a9db5bf..011af26293 100644 --- a/relay/channel/baidu/relay-baidu.go +++ b/relay/channel/baidu/relay-baidu.go @@ -166,10 +166,7 @@ func baiduStreamHandler(c *gin.Context, resp *http.Response) (*dto.OpenAIErrorWi return false } }) - err := resp.Body.Close() - if err != nil { - return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), nil - } + common.CloseResponseBodyGracefully(resp) return nil, &usage } diff --git a/relay/channel/cloudflare/relay_cloudflare.go b/relay/channel/cloudflare/relay_cloudflare.go index b2f37a4fb3..1c3a26f7d6 100644 --- a/relay/channel/cloudflare/relay_cloudflare.go +++ b/relay/channel/cloudflare/relay_cloudflare.go @@ -81,10 +81,7 @@ func cfStreamHandler(c *gin.Context, resp *http.Response, info *relaycommon.Rela } helper.Done(c) - err := resp.Body.Close() - if err != nil { - common.LogError(c, "close_response_body_failed: "+err.Error()) - } + common.CloseResponseBodyGracefully(resp) return nil, usage } diff --git a/relay/channel/palm/relay-palm.go b/relay/channel/palm/relay-palm.go index 8fe52f057f..44c60713c2 100644 --- a/relay/channel/palm/relay-palm.go +++ b/relay/channel/palm/relay-palm.go @@ -117,10 +117,7 @@ func palmStreamHandler(c *gin.Context, resp *http.Response) (*dto.OpenAIErrorWit return false } }) - err := resp.Body.Close() - if err != nil { - return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), "" - } + common.CloseResponseBodyGracefully(resp) return nil, responseText } diff --git a/relay/channel/tencent/relay-tencent.go b/relay/channel/tencent/relay-tencent.go index 6e0de1ea12..a7106a88c8 100644 --- a/relay/channel/tencent/relay-tencent.go +++ b/relay/channel/tencent/relay-tencent.go @@ -124,10 +124,7 @@ func tencentStreamHandler(c *gin.Context, resp *http.Response) (*dto.OpenAIError helper.Done(c) - err := resp.Body.Close() - if err != nil { - return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), "" - } + common.CloseResponseBodyGracefully(resp) return nil, responseText } diff --git a/relay/channel/xai/text.go b/relay/channel/xai/text.go index a937d84793..9a30035673 100644 --- a/relay/channel/xai/text.go +++ b/relay/channel/xai/text.go @@ -73,11 +73,7 @@ func xAIStreamHandler(c *gin.Context, resp *http.Response, info *relaycommon.Rel } helper.Done(c) - err := resp.Body.Close() - if err != nil { - //return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), nil - common.SysError("close_response_body_failed: " + err.Error()) - } + common.CloseResponseBodyGracefully(resp) return nil, usage } diff --git a/relay/channel/zhipu/relay-zhipu.go b/relay/channel/zhipu/relay-zhipu.go index 23c0e1b5ed..91cd384b8b 100644 --- a/relay/channel/zhipu/relay-zhipu.go +++ b/relay/channel/zhipu/relay-zhipu.go @@ -210,10 +210,7 @@ func zhipuStreamHandler(c *gin.Context, resp *http.Response) (*dto.OpenAIErrorWi return false } }) - err := resp.Body.Close() - if err != nil { - return service.OpenAIErrorWrapper(err, "close_response_body_failed", http.StatusInternalServerError), nil - } + common.CloseResponseBodyGracefully(resp) return nil, usage }