|
@@ -227,8 +227,8 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
|
|
|
return 0, nil, nil
|
|
return 0, nil, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if i := strings.Index(string(data), "\n\n"); i >= 0 {
|
|
|
|
|
- return i + 2, data[0:i], nil
|
|
|
|
|
|
|
+ if i := strings.Index(string(data), "\n"); i >= 0 {
|
|
|
|
|
+ return i + 1, data[0:i], nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if atEOF {
|
|
if atEOF {
|
|
@@ -242,8 +242,7 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
|
|
|
go func() {
|
|
go func() {
|
|
|
for scanner.Scan() {
|
|
for scanner.Scan() {
|
|
|
data := scanner.Text()
|
|
data := scanner.Text()
|
|
|
- if len(data) < 6 { // must be something wrong!
|
|
|
|
|
- common.SysError("invalid stream response: " + data)
|
|
|
|
|
|
|
+ if len(data) < 6 { // ignore blank line or wrong format
|
|
|
continue
|
|
continue
|
|
|
}
|
|
}
|
|
|
dataChan <- data
|
|
dataChan <- data
|
|
@@ -286,6 +285,8 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
|
|
|
if strings.HasPrefix(data, "data: [DONE]") {
|
|
if strings.HasPrefix(data, "data: [DONE]") {
|
|
|
data = data[:12]
|
|
data = data[:12]
|
|
|
}
|
|
}
|
|
|
|
|
+ // some implementations may add \r at the end of data
|
|
|
|
|
+ data = strings.TrimSuffix(data, "\r")
|
|
|
c.Render(-1, common.CustomEvent{Data: data})
|
|
c.Render(-1, common.CustomEvent{Data: data})
|
|
|
return true
|
|
return true
|
|
|
case <-stopChan:
|
|
case <-stopChan:
|