diff --git a/controller/channel-test.go b/controller/channel-test.go index 10196d56..90e15c99 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -61,6 +61,9 @@ func testChannel(channel *model.Channel, request ChatRequest) (error, *OpenAIErr return err, nil } defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + return errors.New(fmt.Sprintf("status code %d", resp.StatusCode)), nil + } isStream := strings.HasPrefix(resp.Header.Get("Content-Type"), "text/event-stream") @@ -119,7 +122,7 @@ func testChannel(channel *model.Channel, request ChatRequest) (error, *OpenAIErr if responseText == "" { return errors.New("Empty response"), nil } - } else { + } else if channel.AllowNonStreaming == common.ChannelAllowNonStreamEnabled { var response TextResponse err = json.NewDecoder(resp.Body).Decode(&response) if err != nil { diff --git a/controller/relay-text.go b/controller/relay-text.go index 52e10f2b..a4a69216 100644 --- a/controller/relay-text.go +++ b/controller/relay-text.go @@ -266,6 +266,9 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode { if err != nil { return errorWrapper(err, "close_request_body_failed", http.StatusInternalServerError) } + if resp.StatusCode != http.StatusOK { + return errorWrapper(nil, "bad_status_code", resp.StatusCode) + } var textResponse TextResponse isStream := strings.HasPrefix(resp.Header.Get("Content-Type"), "text/event-stream") var streamResponseText string