抱歉,经测试这样才没有问题

This commit is contained in:
sijinhui
2025-02-21 22:51:53 +08:00
parent 4625aa9fa8
commit 33fd5d5913

View File

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