From 33fd5d5913a4a952f4b6d4377a755f447c1ae5f4 Mon Sep 17 00:00:00 2001 From: sijinhui Date: Fri, 21 Feb 2025 22:51:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=B1=E6=AD=89=EF=BC=8C=E7=BB=8F=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=BF=99=E6=A0=B7=E6=89=8D=E6=B2=A1=E6=9C=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/adaptor/openai/main.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/relay/adaptor/openai/main.go b/relay/adaptor/openai/main.go index 243fc266..d83a4588 100644 --- a/relay/adaptor/openai/main.go +++ b/relay/adaptor/openai/main.go @@ -19,7 +19,7 @@ import ( ) const ( - dataPrefix = "data: " + dataPrefix = "data:" done = "[DONE]" dataPrefixLength = len(dataPrefix) ) @@ -38,15 +38,17 @@ func StreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*model.E if len(data) < dataPrefixLength { // ignore blank line or wrong format continue } - if data[:dataPrefixLength] != dataPrefix { - if strings.HasPrefix(data, done) { - render.StringData(c, data) - doneRendered = true - } - continue + if data[:dataPrefixLength] != dataPrefix && data[:dataPrefixLength] != done { + continue } else { + payload := strings.TrimLeft(data[len(dataPrefix):], " ") // 这里处理标准的data:开头,标准化为 data: + 单空格格式 data = dataPrefix + " " + strings.TrimLeft(data[len(dataPrefix):], " ") + if strings.HasPrefix(payload, done) { + render.StringData(c, data) + doneRendered = true + continue + } } switch relayMode { case relaymode.ChatCompletions: