This commit is contained in:
sijinhui
2025-02-21 14:56:08 +00:00
committed by GitHub

View File

@@ -19,7 +19,7 @@ import (
) )
const ( const (
dataPrefix = "data: " dataPrefix = "data:"
done = "[DONE]" done = "[DONE]"
dataPrefixLength = len(dataPrefix) 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 { if data[:dataPrefixLength] != dataPrefix && data[:dataPrefixLength] != done {
continue continue
} } else {
if strings.HasPrefix(data[dataPrefixLength:], done) { payload := strings.TrimLeft(data[dataPrefixLength:], " ")
render.StringData(c, data) // 这里处理标准的data:开头,标准化为 data: + 单空格格式
doneRendered = true data = dataPrefix + " " + strings.TrimLeft(payload, " ")
continue if strings.HasPrefix(payload, done) {
} render.StringData(c, data)
doneRendered = true
continue
}
}
switch relayMode { switch relayMode {
case relaymode.ChatCompletions: case relaymode.ChatCompletions:
var streamResponse ChatCompletionsStreamResponse var streamResponse ChatCompletionsStreamResponse