From 1ac79a8126dc9bc9cdf96cfa85bc4a0434600644 Mon Sep 17 00:00:00 2001 From: QistChan Date: Mon, 24 Feb 2025 01:45:24 +0000 Subject: [PATCH 1/2] fix: Improve OpenAI stream data parsing --- relay/adaptor/openai/main.go | 2 +- relay/adaptor/openai/util.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/relay/adaptor/openai/main.go b/relay/adaptor/openai/main.go index 97080738..e8bdb8cf 100644 --- a/relay/adaptor/openai/main.go +++ b/relay/adaptor/openai/main.go @@ -34,7 +34,7 @@ func StreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*model.E doneRendered := false for scanner.Scan() { - data := scanner.Text() + data := NormalizeDataLine(scanner.Text()) if len(data) < dataPrefixLength { // ignore blank line or wrong format continue } diff --git a/relay/adaptor/openai/util.go b/relay/adaptor/openai/util.go index 83beadba..0ee3896b 100644 --- a/relay/adaptor/openai/util.go +++ b/relay/adaptor/openai/util.go @@ -21,3 +21,11 @@ func ErrorWrapper(err error, code string, statusCode int) *model.ErrorWithStatus StatusCode: statusCode, } } + +func NormalizeDataLine(data string) string { + if strings.HasPrefix(data, "data:") { + content := strings.TrimLeft(data[len("data:"):], " ") + return "data: " + content + } + return data +} From e71893df6e0bdb258550a3765680383df67fefc3 Mon Sep 17 00:00:00 2001 From: QistChan Date: Mon, 24 Feb 2025 01:46:47 +0000 Subject: [PATCH 2/2] feat: Enhance VolcEngine channel support with bot model routing --- relay/adaptor/doubao/main.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/relay/adaptor/doubao/main.go b/relay/adaptor/doubao/main.go index dd43d06c..669a6751 100644 --- a/relay/adaptor/doubao/main.go +++ b/relay/adaptor/doubao/main.go @@ -9,6 +9,9 @@ import ( func GetRequestURL(meta *meta.Meta) (string, error) { switch meta.Mode { case relaymode.ChatCompletions: + if strings.HasPrefix(meta.ActualModelName, "bot") { + return fmt.Sprintf("%s/api/v3/bots/chat/completions", meta.BaseURL), nil + } return fmt.Sprintf("%s/api/v3/chat/completions", meta.BaseURL), nil case relaymode.Embeddings: return fmt.Sprintf("%s/api/v3/embeddings", meta.BaseURL), nil