From 3d9b81c706801c823ec2e5600a9e0eeda0e7ae5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98Liu?= <‘liuchunk08@gmail.com’> Date: Wed, 10 Jan 2024 14:19:33 +0800 Subject: [PATCH 01/10] Init customer --- common/model-ratio.go | 4 ++++ controller/log.go | 27 ++++++++++++++++++++++++++- controller/relay.go | 2 +- controller/token.go | 18 +++++++++++++++++- middleware/distributor.go | 6 +++++- model/log.go | 21 ++++++++++++++++++++- model/token.go | 13 +++++++++++-- router/api-router.go | 3 ++- router/dashboard.go | 6 ++++-- web/berry/package.json | 2 +- web/default/package.json | 2 +- 11 files changed, 92 insertions(+), 12 deletions(-) diff --git a/common/model-ratio.go b/common/model-ratio.go index 97cb060d..35a96397 100644 --- a/common/model-ratio.go +++ b/common/model-ratio.go @@ -44,6 +44,7 @@ var ModelRatio = map[string]float64{ "gpt-4-32k-0314": 30, "gpt-4-32k-0613": 30, "gpt-4-1106-preview": 5, // $0.01 / 1K tokens + "gpt-4-gizmo": 30, // $0.06 / 1K tokens "gpt-4-vision-preview": 5, // $0.01 / 1K tokens "gpt-3.5-turbo": 0.75, // $0.0015 / 1K tokens "gpt-3.5-turbo-0301": 0.75, @@ -122,6 +123,9 @@ func GetModelRatio(name string) float64 { name = strings.TrimSuffix(name, "-internet") } ratio, ok := ModelRatio[name] + if strings.Index(name, "gpt-4-gizmo") != -1 { + return ModelRatio["gpt-4-gizmo"] + } if !ok { SysError("model ratio not found: " + name) return 30 diff --git a/controller/log.go b/controller/log.go index b65867fe..40626227 100644 --- a/controller/log.go +++ b/controller/log.go @@ -35,7 +35,32 @@ func GetAllLogs(c *gin.Context) { }) return } - +func GetLogsByKey(c *gin.Context) { + startidx, _ := strconv.Atoi(c.Query("startIdx")) + num, _ := strconv.Atoi(c.Query("num")) + if startidx <= 0 || num <= 0 { + startidx = 0 + num = 10 + } + logType, _ := strconv.Atoi(c.Query("type")) + startTimestamp, _ := strconv.ParseInt(c.Query("start_timestamp"), 10, 64) + endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64) + key := c.Query("key") + logs, err := model.GetLogsByKey(logType, startTimestamp, endTimestamp, key, startidx, num) + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": err.Error(), + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "success": true, + "message": "", + "data": logs, + }) + return +} func GetUserLogs(c *gin.Context) { p, _ := strconv.Atoi(c.Query("p")) if p < 0 { diff --git a/controller/relay.go b/controller/relay.go index e45fd3eb..6dddbd0a 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -361,7 +361,7 @@ func Relay(c *gin.Context) { if err.StatusCode == http.StatusTooManyRequests { err.OpenAIError.Message = "当前分组上游负载已饱和,请稍后再试" } - err.OpenAIError.Message = common.MessageWithRequestId(err.OpenAIError.Message, requestId) + err.OpenAIError.Message = common.MessageWithRequestId("Request From https://api.adamchatbot.chat Error", requestId) c.JSON(err.StatusCode, gin.H{ "error": err.OpenAIError, }) diff --git a/controller/token.go b/controller/token.go index 8642122c..6917053e 100644 --- a/controller/token.go +++ b/controller/token.go @@ -29,7 +29,23 @@ func GetAllTokens(c *gin.Context) { }) return } - +func GetNameByToken(c *gin.Context) { + token := c.Query("key") + name, err := model.GetNameByToken(token) + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": err.Error(), + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "success": true, + "message": "", + "data": name, + }) + return +} func SearchTokens(c *gin.Context) { userId := c.GetInt("id") keyword := c.Query("keyword") diff --git a/middleware/distributor.go b/middleware/distributor.go index 81338130..5bf4d43c 100644 --- a/middleware/distributor.go +++ b/middleware/distributor.go @@ -65,7 +65,11 @@ func Distribute() func(c *gin.Context) { modelRequest.Model = "whisper-1" } } - channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model) + if strings.HasPrefix(modelRequest.Model, "gpt-4-gizmo") { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, "gpt-4-gizmo") + } else { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model) + } if err != nil { message := fmt.Sprintf("当前分组 %s 下对于模型 %s 无可用渠道", userGroup, modelRequest.Model) if channel != nil { diff --git a/model/log.go b/model/log.go index 307928c4..6882431f 100644 --- a/model/log.go +++ b/model/log.go @@ -71,7 +71,26 @@ func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptToke common.LogError(ctx, "failed to record log: "+err.Error()) } } - +func GetLogsByKey(logType int, startTimestamp int64, endTimestamp int64, key string, startIdx int, num int) (logs []*Log, err error) { + var tx *gorm.DB + token, err := GetNameByToken(key) + if logType == LogTypeUnknown { + tx = DB.Debug() + } else { + tx = DB.Debug().Where("type = ?", logType) + } + if token != nil { + tx = tx.Where("token_name = ?", token.Name) + } + if startTimestamp != 0 { + tx = tx.Where("created_at >= ?", startTimestamp) + } + if endTimestamp != 0 { + tx = tx.Where("created_at <= ?", endTimestamp) + } + err = tx.Order("id desc").Limit(num).Offset(startIdx).Find(&logs).Error + return logs, err +} func GetAllLogs(logType int, startTimestamp int64, endTimestamp int64, modelName string, username string, tokenName string, startIdx int, num int, channel int) (logs []*Log, err error) { var tx *gorm.DB if logType == LogTypeUnknown { diff --git a/model/token.go b/model/token.go index 2e53ac0b..73705d96 100644 --- a/model/token.go +++ b/model/token.go @@ -3,8 +3,9 @@ package model import ( "errors" "fmt" - "gorm.io/gorm" "one-api/common" + + "gorm.io/gorm" ) type Token struct { @@ -32,7 +33,15 @@ func SearchUserTokens(userId int, keyword string) (tokens []*Token, err error) { err = DB.Where("user_id = ?", userId).Where("name LIKE ?", keyword+"%").Find(&tokens).Error return tokens, err } - +func GetNameByToken(token string) (*Token, error) { + if token == "" { + return nil, errors.New("token为空") + } + token_name := Token{Key: token} + var err error = nil + err = DB.First(&token_name, "`key` = ?", token).Error + return &token_name, err +} func ValidateUserToken(key string) (token *Token, err error) { if key == "" { return nil, errors.New("未提供令牌") diff --git a/router/api-router.go b/router/api-router.go index 162675ce..bd2574ab 100644 --- a/router/api-router.go +++ b/router/api-router.go @@ -82,7 +82,7 @@ func SetApiRouter(router *gin.Engine) { tokenRoute.Use(middleware.UserAuth()) { tokenRoute.GET("/", controller.GetAllTokens) - tokenRoute.GET("/search", controller.SearchTokens) + tokenRoute.GET("/search", middleware.CORS(), controller.SearchTokens) tokenRoute.GET("/:id", controller.GetToken) tokenRoute.POST("/", controller.AddToken) tokenRoute.PUT("/", controller.UpdateToken) @@ -101,6 +101,7 @@ func SetApiRouter(router *gin.Engine) { logRoute := apiRouter.Group("/log") logRoute.GET("/", middleware.AdminAuth(), controller.GetAllLogs) logRoute.DELETE("/", middleware.AdminAuth(), controller.DeleteHistoryLogs) + logRoute.GET("/key", middleware.CORS(), controller.GetLogsByKey) logRoute.GET("/stat", middleware.AdminAuth(), controller.GetLogsStat) logRoute.GET("/self/stat", middleware.UserAuth(), controller.GetLogsSelfStat) logRoute.GET("/search", middleware.AdminAuth(), controller.SearchAllLogs) diff --git a/router/dashboard.go b/router/dashboard.go index 39ed1f93..06b55bcd 100644 --- a/router/dashboard.go +++ b/router/dashboard.go @@ -1,13 +1,15 @@ package router import ( - "github.com/gin-contrib/gzip" - "github.com/gin-gonic/gin" "one-api/controller" "one-api/middleware" + + "github.com/gin-contrib/gzip" + "github.com/gin-gonic/gin" ) func SetDashboardRouter(router *gin.Engine) { + router.Use(middleware.CORS()) apiRouter := router.Group("/") apiRouter.Use(gzip.Gzip(gzip.DefaultCompression)) apiRouter.Use(middleware.GlobalAPIRateLimit()) diff --git a/web/berry/package.json b/web/berry/package.json index f428fd9c..6ebaca64 100644 --- a/web/berry/package.json +++ b/web/berry/package.json @@ -40,7 +40,7 @@ }, "scripts": { "start": "react-scripts start", - "build": "react-scripts build && mv -f build ../build/berry", + "build": "react-scripts build && move build ../build/berry", "test": "react-scripts test", "eject": "react-scripts eject" }, diff --git a/web/default/package.json b/web/default/package.json index 438f020c..5290f744 100644 --- a/web/default/package.json +++ b/web/default/package.json @@ -18,7 +18,7 @@ }, "scripts": { "start": "react-scripts start", - "build": "react-scripts build && mv -f build ../build/default", + "build": "react-scripts build && mv -f build ../build/default", "test": "react-scripts test", "eject": "react-scripts eject" }, From 8383bce459c206d57a198e11973359dc2aacfe05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98Liu?= <‘liuchunk08@gmail.com’> Date: Wed, 10 Jan 2024 14:37:35 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=97=A5=E5=BF=97num=E4=B8=8D=E8=B5=B7=E4=BD=9C=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/log.go | 9 +++++++-- model/log.go | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/controller/log.go b/controller/log.go index 40626227..3265ce20 100644 --- a/controller/log.go +++ b/controller/log.go @@ -1,11 +1,12 @@ package controller import ( - "github.com/gin-gonic/gin" "net/http" "one-api/common" "one-api/model" "strconv" + + "github.com/gin-gonic/gin" ) func GetAllLogs(c *gin.Context) { @@ -38,10 +39,14 @@ func GetAllLogs(c *gin.Context) { func GetLogsByKey(c *gin.Context) { startidx, _ := strconv.Atoi(c.Query("startIdx")) num, _ := strconv.Atoi(c.Query("num")) - if startidx <= 0 || num <= 0 { + + if startidx <= 0 { startidx = 0 + } + if num <= 0 { num = 10 } + logType, _ := strconv.Atoi(c.Query("type")) startTimestamp, _ := strconv.ParseInt(c.Query("start_timestamp"), 10, 64) endTimestamp, _ := strconv.ParseInt(c.Query("end_timestamp"), 10, 64) diff --git a/model/log.go b/model/log.go index 6882431f..fce5661f 100644 --- a/model/log.go +++ b/model/log.go @@ -73,6 +73,7 @@ func RecordConsumeLog(ctx context.Context, userId int, channelId int, promptToke } func GetLogsByKey(logType int, startTimestamp int64, endTimestamp int64, key string, startIdx int, num int) (logs []*Log, err error) { var tx *gorm.DB + fmt.Println(num) token, err := GetNameByToken(key) if logType == LogTypeUnknown { tx = DB.Debug() From ea439abfda9679597f309c4147eee27d114408f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98Liu?= <‘liuchunk08@gmail.com’> Date: Wed, 10 Jan 2024 15:24:51 +0800 Subject: [PATCH 03/10] Update Node version in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 94cd8468..bbe45905 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:16 as builder +FROM node:20 as builder WORKDIR /web COPY ./VERSION . From 540699ca74d9b842dfcaaf0a23e5a304ce84e1c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98Liu?= <‘liuchunk08@gmail.com’> Date: Wed, 10 Jan 2024 15:35:23 +0800 Subject: [PATCH 04/10] Fix build command in package.json --- web/berry/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/berry/package.json b/web/berry/package.json index 6ebaca64..f428fd9c 100644 --- a/web/berry/package.json +++ b/web/berry/package.json @@ -40,7 +40,7 @@ }, "scripts": { "start": "react-scripts start", - "build": "react-scripts build && move build ../build/berry", + "build": "react-scripts build && mv -f build ../build/berry", "test": "react-scripts test", "eject": "react-scripts eject" }, From c5bec1670357e7920adfa60a4af5473b8a1d9c70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98Liu?= <‘liuchunk08@gmail.com’> Date: Tue, 16 Jan 2024 17:21:08 +0800 Subject: [PATCH 05/10] merge 5.12 --- controller/relay.go | 2 +- router/dashboard.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/controller/relay.go b/controller/relay.go index 6adf053a..ef5a4bbb 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -66,7 +66,7 @@ func Relay(c *gin.Context) { err.Error.Message = "当前分组上游负载已饱和,请稍后再试" } - err.OpenAIError.Message = common.MessageWithRequestId("Request From https://api.adamchatbot.chat Error", requestId) + err.Error.Message = common.MessageWithRequestId("Request From https://api.adamchatbot.chat Error", requestId) c.JSON(err.StatusCode, gin.H{ "error": err.Error, diff --git a/router/dashboard.go b/router/dashboard.go index 06b55bcd..f0900d8f 100644 --- a/router/dashboard.go +++ b/router/dashboard.go @@ -9,8 +9,9 @@ import ( ) func SetDashboardRouter(router *gin.Engine) { - router.Use(middleware.CORS()) + apiRouter := router.Group("/") + apiRouter.Use(middleware.CORS()) apiRouter.Use(gzip.Gzip(gzip.DefaultCompression)) apiRouter.Use(middleware.GlobalAPIRateLimit()) apiRouter.Use(middleware.TokenAuth()) From 1114a498cef0c5f811a1a99ea97cc03093571de9 Mon Sep 17 00:00:00 2001 From: liuchunk Date: Tue, 27 Feb 2024 13:36:11 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E9=80=82=E9=85=8D6.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + controller/relay.go | 9 ++++----- model/token.go | 4 ---- router/dashboard.go | 2 -- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 974fcf63..ae288bfa 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build logs data /web/node_modules +/.history diff --git a/controller/relay.go b/controller/relay.go index 0d619813..aff6d668 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -2,6 +2,9 @@ package controller import ( "fmt" + "net/http" + "strconv" + "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/common/config" "github.com/songquanpeng/one-api/common/helper" @@ -10,8 +13,6 @@ import ( "github.com/songquanpeng/one-api/relay/controller" "github.com/songquanpeng/one-api/relay/model" "github.com/songquanpeng/one-api/relay/util" - "net/http" - "strconv" ) // https://platform.openai.com/docs/api-reference/chat @@ -45,9 +46,7 @@ func Relay(c *gin.Context) { err.Error.Message = "当前分组上游负载已饱和,请稍后再试" } - - err.Error.Message = common.MessageWithRequestId("Request From https://api.adamchatbot.chat Error", requestId) - + err.Error.Message = helper.MessageWithRequestId("Request From https://api.adamchatbot.chat Error", requestId) c.JSON(err.StatusCode, gin.H{ "error": err.Error, diff --git a/model/token.go b/model/token.go index 995ff1a9..433f9700 100644 --- a/model/token.go +++ b/model/token.go @@ -3,10 +3,6 @@ package model import ( "errors" "fmt" - - "one-api/common" - - "github.com/songquanpeng/one-api/common" "github.com/songquanpeng/one-api/common/config" "github.com/songquanpeng/one-api/common/helper" diff --git a/router/dashboard.go b/router/dashboard.go index ffe05066..8857fa23 100644 --- a/router/dashboard.go +++ b/router/dashboard.go @@ -2,8 +2,6 @@ package router import ( - "one-api/controller" - "one-api/middleware" "github.com/gin-contrib/gzip" "github.com/gin-gonic/gin" From 82f4808f01e24b6e349d3952b638360c013da230 Mon Sep 17 00:00:00 2001 From: liuchunk Date: Sun, 17 Mar 2024 17:20:23 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E9=80=82=E9=85=8D6.12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/gin.go | 3 ++- controller/relay.go | 4 +--- middleware/distributor.go | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/common/gin.go b/common/gin.go index b6ef96a6..33d6923c 100644 --- a/common/gin.go +++ b/common/gin.go @@ -3,9 +3,10 @@ package common import ( "bytes" "encoding/json" - "github.com/gin-gonic/gin" "io" "strings" + + "github.com/gin-gonic/gin" ) const KeyRequestBody = "key_request_body" diff --git a/controller/relay.go b/controller/relay.go index 14d0a0ab..98db0f98 100644 --- a/controller/relay.go +++ b/controller/relay.go @@ -5,7 +5,6 @@ import ( "context" "fmt" "net/http" - "strconv" "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/common" @@ -21,8 +20,6 @@ import ( "github.com/songquanpeng/one-api/relay/util" "io" - "net/http" - ) // https://platform.openai.com/docs/api-reference/chat @@ -122,6 +119,7 @@ func shouldRetry(c *gin.Context, statusCode int) bool { } func processChannelRelayError(ctx context.Context, channelId int, channelName string, err *model.ErrorWithStatusCode) { + logger.Errorf(ctx, "relay error (channel #%d): %s", channelId, err.Message) // https://platform.openai.com/docs/guides/error-codes/api-errors if util.ShouldDisableChannel(&err.Error, err.StatusCode) { diff --git a/middleware/distributor.go b/middleware/distributor.go index eebccae5..f57d3cfc 100644 --- a/middleware/distributor.go +++ b/middleware/distributor.go @@ -69,9 +69,9 @@ func Distribute() func(c *gin.Context) { } if strings.HasPrefix(modelRequest.Model, "gpt-4-gizmo") { - channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, "gpt-4-gizmo") + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, "gpt-4-gizmo",false) } else { - channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model) + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, modelRequest.Model,false) } if err != nil { From 61df52fa99450b9f484570f559b52c8080e6fd5d Mon Sep 17 00:00:00 2001 From: liuchunk Date: Tue, 26 Mar 2024 19:18:00 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E5=88=87=E6=8D=A2=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- router/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/router/main.go b/router/main.go index 39d8c04f..479b621a 100644 --- a/router/main.go +++ b/router/main.go @@ -18,7 +18,7 @@ func SetRouter(router *gin.Engine, buildFS embed.FS) { frontendBaseUrl := os.Getenv("FRONTEND_BASE_URL") if config.IsMasterNode && frontendBaseUrl != "" { frontendBaseUrl = "" - logger.SysLog("FRONTEND_BASE_URL is ignored on master node") + logger.SysLog("FRONTEND_——BASE_URL is ignored on master node") } if frontendBaseUrl == "" { SetWebRouter(router, buildFS) From d1ef53e89f9229fbe0e5fec1d4991e02f930fd77 Mon Sep 17 00:00:00 2001 From: liuchunk Date: Wed, 8 May 2024 20:19:27 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gpts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + middleware/distributor.go | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5a433f55..ef1790e9 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ logs data /web/node_modules /.history + cmd.md diff --git a/middleware/distributor.go b/middleware/distributor.go index d0fd7ba5..f43f1e02 100644 --- a/middleware/distributor.go +++ b/middleware/distributor.go @@ -2,13 +2,15 @@ package middleware import ( "fmt" + "net/http" + "strconv" + "strings" + "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/common/ctxkey" "github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/model" "github.com/songquanpeng/one-api/relay/channeltype" - "net/http" - "strconv" ) type ModelRequest struct { @@ -39,9 +41,15 @@ func Distribute() func(c *gin.Context) { return } } else { + requestModel = c.GetString(ctxkey.RequestModel) var err error - channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, requestModel, false) + if strings.HasPrefix(requestModel, "gpt-4-gizmo") { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, "gpt-4-gizmo", false) + } else { + channel, err = model.CacheGetRandomSatisfiedChannel(userGroup, requestModel, false) + } + if err != nil { message := fmt.Sprintf("当前分组 %s 下对于模型 %s 无可用渠道", userGroup, requestModel) if channel != nil { From cdb6a5be6d2ccdd3be4c587157ed7c6972607beb Mon Sep 17 00:00:00 2001 From: liuchunk Date: Thu, 9 May 2024 21:46:17 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0gpts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/adaptor/common.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/relay/adaptor/common.go b/relay/adaptor/common.go index 82a5160e..fe36b00d 100644 --- a/relay/adaptor/common.go +++ b/relay/adaptor/common.go @@ -3,11 +3,12 @@ package adaptor import ( "errors" "fmt" + "io" + "net/http" + "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/relay/client" "github.com/songquanpeng/one-api/relay/meta" - "io" - "net/http" ) func SetupCommonRequestHeader(c *gin.Context, req *http.Request, meta *meta.Meta) { @@ -21,19 +22,19 @@ func SetupCommonRequestHeader(c *gin.Context, req *http.Request, meta *meta.Meta func DoRequestHelper(a Adaptor, c *gin.Context, meta *meta.Meta, requestBody io.Reader) (*http.Response, error) { fullRequestURL, err := a.GetRequestURL(meta) if err != nil { - return nil, fmt.Errorf("get request url failed: %w", err) + return nil, fmt.Errorf("get request url failed: ") } req, err := http.NewRequest(c.Request.Method, fullRequestURL, requestBody) if err != nil { - return nil, fmt.Errorf("new request failed: %w", err) + return nil, fmt.Errorf("new request failed: ") } err = a.SetupRequestHeader(c, req, meta) if err != nil { - return nil, fmt.Errorf("setup request header failed: %w", err) + return nil, fmt.Errorf("setup request header failed: ") } resp, err := DoRequest(c, req) if err != nil { - return nil, fmt.Errorf("do request failed: %w", err) + return nil, fmt.Errorf("do request failed: ") } return resp, nil }