mirror of
https://github.com/songquanpeng/one-api.git
synced 2026-02-27 00:04: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
|
||||
for scanner.Scan() {
|
||||
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
|
||||
continue
|
||||
}
|
||||
if data[:dataPrefixLength] != dataPrefix && data[:dataPrefixLength] != done {
|
||||
continue
|
||||
}
|
||||
if strings.HasPrefix(data[dataPrefixLength:], done) {
|
||||
render.StringData(c, data)
|
||||
doneRendered = true
|
||||
continue
|
||||
}
|
||||
if data[:dataPrefixLength] != dataPrefix {
|
||||
if strings.HasPrefix(data, done) {
|
||||
render.StringData(c, data)
|
||||
doneRendered = true
|
||||
continue
|
||||
}
|
||||
continue
|
||||
} else {
|
||||
// 这里处理标准的data:开头,标准化为 data: + 单空格格式
|
||||
data = dataPrefix + " " + strings.TrimLeft(data[len(dataPrefix):], " ")
|
||||
}
|
||||
switch relayMode {
|
||||
case relaymode.ChatCompletions:
|
||||
var streamResponse ChatCompletionsStreamResponse
|
||||
|
||||
Reference in New Issue
Block a user