mirror of
https://github.com/songquanpeng/one-api.git
synced 2026-02-28 00:34:24 +08:00
尝试优化现有判断逻辑,并适配处理多个空格的情况
This commit is contained in:
@@ -35,23 +35,20 @@ func StreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*model.E
|
|||||||
doneRendered := false
|
doneRendered := false
|
||||||
for scanner.Scan() {
|
for scanner.Scan() {
|
||||||
data := scanner.Text()
|
data := scanner.Text()
|
||||||
// 确保前缀是 "data: {"(冒号后有空格)
|
|
||||||
if strings.HasPrefix(data, "data:{") { // 检测无空格的情况
|
|
||||||
// 替换整个前缀
|
|
||||||
data = "data: {" + strings.TrimPrefix(data, "data:{")
|
|
||||||
}
|
|
||||||
|
|
||||||
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 && data[:dataPrefixLength] != done {
|
if data[:dataPrefixLength] != dataPrefix {
|
||||||
continue
|
if strings.HasPrefix(data, done) {
|
||||||
}
|
render.StringData(c, data)
|
||||||
if strings.HasPrefix(data[dataPrefixLength:], done) {
|
doneRendered = true
|
||||||
render.StringData(c, data)
|
continue
|
||||||
doneRendered = true
|
}
|
||||||
continue
|
continue
|
||||||
}
|
} else {
|
||||||
|
// 这里处理标准的data:开头,标准化为 data: + 单空格格式
|
||||||
|
data = dataPrefix + " " + strings.TrimLeft(data[len(dataPrefix):], " ")
|
||||||
|
}
|
||||||
switch relayMode {
|
switch relayMode {
|
||||||
case relaymode.ChatCompletions:
|
case relaymode.ChatCompletions:
|
||||||
var streamResponse ChatCompletionsStreamResponse
|
var streamResponse ChatCompletionsStreamResponse
|
||||||
|
|||||||
Reference in New Issue
Block a user