diff --git a/.gitignore b/.gitignore index 60abb13e..974fcf63 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ upload build *.db-journal logs -data \ No newline at end of file +data +/web/node_modules diff --git a/common/embed-file-system.go b/common/embed-file-system.go index 3ea02cf8..7c0e4b4e 100644 --- a/common/embed-file-system.go +++ b/common/embed-file-system.go @@ -15,10 +15,7 @@ type embedFileSystem struct { func (e embedFileSystem) Exists(prefix string, path string) bool { _, err := e.Open(path) - if err != nil { - return false - } - return true + return err == nil } func EmbedFolder(fsEmbed embed.FS, targetPath string) static.ServeFileSystem { diff --git a/common/helper/helper.go b/common/helper/helper.go index 12c66d18..a0d88ec2 100644 --- a/common/helper/helper.go +++ b/common/helper/helper.go @@ -107,13 +107,13 @@ func Seconds2Time(num int) (time string) { } func Interface2String(inter interface{}) string { - switch inter.(type) { + switch inter := inter.(type) { case string: - return inter.(string) + return inter case int: - return fmt.Sprintf("%d", inter.(int)) + return fmt.Sprintf("%d", inter) case float64: - return fmt.Sprintf("%f", inter.(float64)) + return fmt.Sprintf("%f", inter) } return "Not Implemented" } diff --git a/common/logger/logger.go b/common/logger/logger.go index b89dbdb7..f970ee61 100644 --- a/common/logger/logger.go +++ b/common/logger/logger.go @@ -68,15 +68,15 @@ func Error(ctx context.Context, msg string) { } func Infof(ctx context.Context, format string, a ...any) { - Info(ctx, fmt.Sprintf(format, a)) + Info(ctx, fmt.Sprintf(format, a...)) } func Warnf(ctx context.Context, format string, a ...any) { - Warn(ctx, fmt.Sprintf(format, a)) + Warn(ctx, fmt.Sprintf(format, a...)) } func Errorf(ctx context.Context, format string, a ...any) { - Error(ctx, fmt.Sprintf(format, a)) + Error(ctx, fmt.Sprintf(format, a...)) } func logHelper(ctx context.Context, level string, msg string) { diff --git a/controller/billing.go b/controller/billing.go index c08f2a2d..7bc19b49 100644 --- a/controller/billing.go +++ b/controller/billing.go @@ -22,7 +22,9 @@ func GetSubscription(c *gin.Context) { } else { userId := c.GetInt("id") remainQuota, err = model.GetUserQuota(userId) - usedQuota, err = model.GetUserUsedQuota(userId) + if err != nil { + usedQuota, err = model.GetUserUsedQuota(userId) + } } if expiredTime <= 0 { expiredTime = 0 diff --git a/controller/channel-test.go b/controller/channel-test.go index c8007031..9d21b469 100644 --- a/controller/channel-test.go +++ b/controller/channel-test.go @@ -90,7 +90,7 @@ func testChannel(channel *model.Channel, request openai.ChatRequest) (err error, if response.Error.Message == "" { response.Error.Message = "补全 tokens 非预期返回 0" } - return errors.New(fmt.Sprintf("type %s, code %v, message %s", response.Error.Type, response.Error.Code, response.Error.Message)), &response.Error + return fmt.Errorf("type %s, code %v, message %s", response.Error.Type, response.Error.Code, response.Error.Message), &response.Error } return nil, nil } diff --git a/controller/group.go b/controller/group.go index 205b6894..128a3527 100644 --- a/controller/group.go +++ b/controller/group.go @@ -8,7 +8,7 @@ import ( func GetGroups(c *gin.Context) { groupNames := make([]string, 0) - for groupName, _ := range common.GroupRatio { + for groupName := range common.GroupRatio { groupNames = append(groupNames, groupName) } c.JSON(http.StatusOK, gin.H{ diff --git a/relay/channel/aiproxy/main.go b/relay/channel/aiproxy/main.go index 4168ede2..0bd345c7 100644 --- a/relay/channel/aiproxy/main.go +++ b/relay/channel/aiproxy/main.go @@ -189,5 +189,8 @@ func Handler(c *gin.Context, resp *http.Response) (*openai.ErrorWithStatusCode, c.Writer.Header().Set("Content-Type", "application/json") c.Writer.WriteHeader(resp.StatusCode) _, err = c.Writer.Write(jsonResponse) + if err != nil { + return openai.ErrorWrapper(err, "write_response_body_failed", http.StatusInternalServerError), nil + } return nil, &fullTextResponse.Usage } diff --git a/relay/channel/openai/token.go b/relay/channel/openai/token.go index 5a05570d..686ac39f 100644 --- a/relay/channel/openai/token.go +++ b/relay/channel/openai/token.go @@ -27,7 +27,7 @@ func InitTokenEncoders() { if err != nil { logger.FatalLog(fmt.Sprintf("failed to get gpt-4 token encoder: %s", err.Error())) } - for model, _ := range common.ModelRatio { + for model := range common.ModelRatio { if strings.HasPrefix(model, "gpt-3.5") { tokenEncoderMap[model] = gpt35TokenEncoder } else if strings.HasPrefix(model, "gpt-4") { diff --git a/relay/channel/tencent/main.go b/relay/channel/tencent/main.go index bca815b6..784f86fd 100644 --- a/relay/channel/tencent/main.go +++ b/relay/channel/tencent/main.go @@ -191,6 +191,9 @@ func Handler(c *gin.Context, resp *http.Response) (*openai.ErrorWithStatusCode, c.Writer.Header().Set("Content-Type", "application/json") c.Writer.WriteHeader(resp.StatusCode) _, err = c.Writer.Write(jsonResponse) + if err != nil { + return openai.ErrorWrapper(err, "write_response_body_failed", http.StatusInternalServerError), nil + } return nil, &fullTextResponse.Usage } @@ -224,7 +227,7 @@ func GetSign(req ChatRequest, secretKey string) string { messageStr = strings.TrimSuffix(messageStr, ",") params = append(params, "messages=["+messageStr+"]") - sort.Sort(sort.StringSlice(params)) + sort.Strings(params) url := "hunyuan.cloud.tencent.com/hyllm/v1/chat/completions?" + strings.Join(params, "&") mac := hmac.New(sha1.New, []byte(secretKey)) signURL := url diff --git a/relay/controller/image.go b/relay/controller/image.go index e5c70080..c64e001b 100644 --- a/relay/controller/image.go +++ b/relay/controller/image.go @@ -84,7 +84,7 @@ func RelayImageHelper(c *gin.Context, relayMode int) *openai.ErrorWithStatusCode } // Number of generated images validation - if isWithinRange(imageModel, imageRequest.N) == false { + if !isWithinRange(imageModel, imageRequest.N) { // channel not azure if channelType != common.ChannelTypeAzure { return openai.ErrorWrapper(errors.New("invalid value of n"), "n_not_within_range", http.StatusBadRequest)