diff --git a/relay/adaptor/openai/main.go b/relay/adaptor/openai/main.go index 97080738..f7cd0dd4 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) ) @@ -40,12 +40,16 @@ func StreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*model.E } if data[:dataPrefixLength] != dataPrefix && data[:dataPrefixLength] != done { continue - } - if strings.HasPrefix(data[dataPrefixLength:], done) { - render.StringData(c, data) - doneRendered = true - continue - } + } else { + payload := strings.TrimLeft(data[dataPrefixLength:], " ") + // 这里处理标准的data:开头,标准化为 data: + 单空格格式 + data = dataPrefix + " " + strings.TrimLeft(payload, " ") + if strings.HasPrefix(payload, done) { + render.StringData(c, data) + doneRendered = true + continue + } + } switch relayMode { case relaymode.ChatCompletions: var streamResponse ChatCompletionsStreamResponse