From d5dfacd8a67a26000529d25209dc27eba3ab9276 Mon Sep 17 00:00:00 2001 From: ckt1031 <65409152+ckt1031@users.noreply.github.com> Date: Sun, 20 Aug 2023 01:24:59 +0800 Subject: [PATCH] fix: json issue --- controller/channel-test.go | 11 +++++------ controller/relay-openai.go | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/controller/channel-test.go b/controller/channel-test.go index dd88d317..1f8349c1 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -111,15 +111,14 @@ func testChannel(channel *model.Channel, request ChatRequest) (error, *OpenAIErr if !strings.HasPrefix(data, "data:") { continue } - data = data[6:] + data = strings.TrimPrefix(data, "data:") if !strings.HasPrefix(data, "[DONE]") { var streamResponse ChatCompletionsStreamResponse err := json.Unmarshal([]byte(data), &streamResponse) - if err != nil { - return err, nil - } - for _, choice := range streamResponse.Choices { - responseText += choice.Delta.Content + if err == nil { + for _, choice := range streamResponse.Choices { + responseText += choice.Delta.Content + } } } } diff --git a/controller/relay-openai.go b/controller/relay-openai.go index 786901dc..89b2a4bc 100644 --- a/controller/relay-openai.go +++ b/controller/relay-openai.go @@ -57,19 +57,18 @@ func openaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*O } } dataChan <- data - data = data[6:] + data = strings.TrimPrefix(data, "data:") if !strings.HasPrefix(data, "[DONE]") { switch relayMode { case RelayModeChatCompletions: var streamResponse ChatCompletionsStreamResponse err := json.Unmarshal([]byte(data), &streamResponse) - if err != nil { - common.SysError("error unmarshalling stream response: " + err.Error()) + if err == nil { + for _, choice := range streamResponse.Choices { + responseText += choice.Delta.Content + } continue // just ignore the error } - for _, choice := range streamResponse.Choices { - responseText += choice.Delta.Content - } case RelayModeCompletions: var streamResponse CompletionsStreamResponse err := json.Unmarshal([]byte(data), &streamResponse)