From 34d517cfa233d90b470e4d6ac0208051de4b4fea Mon Sep 17 00:00:00 2001 From: Mikey Date: Fri, 17 Nov 2023 05:45:55 -0800 Subject: [PATCH] fix: cloudflare test & expose detailed info about test failures (#715) * fix: cloudflare test & expose detailed info about test failures * fix: cloudflare test & expose detailed info about test failures --------- Co-authored-by: JustSong --- controller/channel-test.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/controller/channel-test.go b/controller/channel-test.go index 3c6c8f43..b47a44b9 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -6,11 +6,11 @@ import ( "errors" "fmt" "github.com/gin-gonic/gin" + "io" "net/http" "one-api/common" "one-api/model" "strconv" - "strings" "sync" "time" ) @@ -45,13 +45,11 @@ func testChannel(channel *model.Channel, request ChatRequest) (err error, openai if channel.Type == common.ChannelTypeAzure { requestURL = fmt.Sprintf("%s/openai/deployments/%s/chat/completions?api-version=2023-03-15-preview", channel.GetBaseURL(), request.Model) } else { - if channel.GetBaseURL() != "" { - requestURL = channel.GetBaseURL() + if baseURL := channel.GetBaseURL(); len(baseURL) > 0 { + requestURL = baseURL } - requestURL += "/v1/chat/completions" + requestURL = getFullRequestURL(requestURL, "/v1/chat/completions", channel.Type) } - // for Cloudflare AI gateway: https://github.com/songquanpeng/one-api/pull/639 - requestURL = strings.Replace(requestURL, "/v1/v1", "/v1", 1) jsonData, err := json.Marshal(request) if err != nil { @@ -73,10 +71,14 @@ func testChannel(channel *model.Channel, request ChatRequest) (err error, openai } defer resp.Body.Close() var response TextResponse - err = json.NewDecoder(resp.Body).Decode(&response) + body, err := io.ReadAll(resp.Body) if err != nil { return err, nil } + err = json.Unmarshal(body, &response) + if err != nil { + return fmt.Errorf("Error: %s\nResp body: %s", err, body), nil + } if response.Usage.CompletionTokens == 0 { return errors.New(fmt.Sprintf("type %s, code %v, message %s", response.Error.Type, response.Error.Code, response.Error.Message)), &response.Error }