JustSong 2 лет назад
Родитель
Сommit
00151a0124

+ 2 - 2
common/group-ratio.go

@@ -11,7 +11,7 @@ var GroupRatio = map[string]float64{
 func GroupRatio2JSONString() string {
 	jsonBytes, err := json.Marshal(GroupRatio)
 	if err != nil {
-		SysError("Error marshalling model ratio: " + err.Error())
+		SysError("error marshalling model ratio: " + err.Error())
 	}
 	return string(jsonBytes)
 }
@@ -24,7 +24,7 @@ func UpdateGroupRatioByJSONString(jsonStr string) error {
 func GetGroupRatio(name string) float64 {
 	ratio, ok := GroupRatio[name]
 	if !ok {
-		SysError("Group ratio not found: " + name)
+		SysError("group ratio not found: " + name)
 		return 1
 	}
 	return ratio

+ 2 - 2
common/model-ratio.go

@@ -40,7 +40,7 @@ var ModelRatio = map[string]float64{
 func ModelRatio2JSONString() string {
 	jsonBytes, err := json.Marshal(ModelRatio)
 	if err != nil {
-		SysError("Error marshalling model ratio: " + err.Error())
+		SysError("error marshalling model ratio: " + err.Error())
 	}
 	return string(jsonBytes)
 }
@@ -53,7 +53,7 @@ func UpdateModelRatioByJSONString(jsonStr string) error {
 func GetModelRatio(name string) float64 {
 	ratio, ok := ModelRatio[name]
 	if !ok {
-		SysError("Model ratio not found: " + name)
+		SysError("model ratio not found: " + name)
 		return 30
 	}
 	return ratio

+ 5 - 2
common/redis.go

@@ -20,7 +20,7 @@ func InitRedisClient() (err error) {
 	SysLog("Redis is enabled")
 	opt, err := redis.ParseURL(os.Getenv("REDIS_CONN_STRING"))
 	if err != nil {
-		FatalLog(err)
+		FatalLog("failed to parse Redis connection string: " + err.Error())
 	}
 	RDB = redis.NewClient(opt)
 
@@ -28,13 +28,16 @@ func InitRedisClient() (err error) {
 	defer cancel()
 
 	_, err = RDB.Ping(ctx).Result()
+	if err != nil {
+		FatalLog("Redis ping test failed: " + err.Error())
+	}
 	return err
 }
 
 func ParseRedisOption() *redis.Options {
 	opt, err := redis.ParseURL(os.Getenv("REDIS_CONN_STRING"))
 	if err != nil {
-		panic(err)
+		FatalLog("failed to parse Redis connection string: " + err.Error())
 	}
 	return opt
 }

+ 2 - 2
controller/channel-test.go

@@ -129,7 +129,7 @@ func disableChannel(channelId int, channelName string, reason string) {
 	content := fmt.Sprintf("通道「%s」(#%d)已被禁用,原因:%s", channelName, channelId, reason)
 	err := common.SendEmail(subject, common.RootUserEmail, content)
 	if err != nil {
-		common.SysError(fmt.Sprintf("发送邮件失败:%s", err.Error()))
+		common.SysError(fmt.Sprintf("failed to send email: %s", err.Error()))
 	}
 }
 
@@ -176,7 +176,7 @@ func testAllChannels(c *gin.Context) error {
 		}
 		err := common.SendEmail("通道测试完成", common.RootUserEmail, "通道测试完成,如果没有收到禁用通知,说明所有通道都正常")
 		if err != nil {
-			common.SysError(fmt.Sprintf("发送邮件失败:%s", err.Error()))
+			common.SysError(fmt.Sprintf("failed to send email: %s", err.Error()))
 		}
 		testAllChannelsLock.Lock()
 		testAllChannelsRunning = false

+ 4 - 4
controller/relay-text.go

@@ -140,7 +140,7 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
 			quotaDelta := quota - preConsumedQuota
 			err := model.PostConsumeTokenQuota(tokenId, quotaDelta)
 			if err != nil {
-				common.SysError("Error consuming token remain quota: " + err.Error())
+				common.SysError("error consuming token remain quota: " + err.Error())
 			}
 			tokenName := c.GetString("token_name")
 			model.RecordLog(userId, model.LogTypeConsume, fmt.Sprintf("通过令牌「%s」使用模型 %s 消耗 %s(模型倍率 %.2f,分组倍率 %.2f)", tokenName, textRequest.Model, common.LogQuota(quota), modelRatio, groupRatio))
@@ -173,7 +173,7 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
 			for scanner.Scan() {
 				data := scanner.Text()
 				if len(data) < 6 { // must be something wrong!
-					common.SysError("Invalid stream response: " + data)
+					common.SysError("invalid stream response: " + data)
 					continue
 				}
 				dataChan <- data
@@ -184,7 +184,7 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
 						var streamResponse ChatCompletionsStreamResponse
 						err = json.Unmarshal([]byte(data), &streamResponse)
 						if err != nil {
-							common.SysError("Error unmarshalling stream response: " + err.Error())
+							common.SysError("error unmarshalling stream response: " + err.Error())
 							return
 						}
 						for _, choice := range streamResponse.Choices {
@@ -194,7 +194,7 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
 						var streamResponse CompletionsStreamResponse
 						err = json.Unmarshal([]byte(data), &streamResponse)
 						if err != nil {
-							common.SysError("Error unmarshalling stream response: " + err.Error())
+							common.SysError("error unmarshalling stream response: " + err.Error())
 							return
 						}
 						for _, choice := range streamResponse.Choices {

+ 1 - 1
controller/relay.go

@@ -118,7 +118,7 @@ func Relay(c *gin.Context) {
 			"error": err.OpenAIError,
 		})
 		channelId := c.GetInt("channel_id")
-		common.SysError(fmt.Sprintf("Relay error (channel #%d): %s", channelId, err.Message))
+		common.SysError(fmt.Sprintf("relay error (channel #%d): %s", channelId, err.Message))
 		// https://platform.openai.com/docs/guides/error-codes/api-errors
 		if common.AutomaticDisableChannelEnabled && (err.Type == "insufficient_quota" || err.Code == "invalid_api_key") {
 			channelId := c.GetInt("channel_id")

+ 5 - 6
main.go

@@ -6,7 +6,6 @@ import (
 	"github.com/gin-contrib/sessions/cookie"
 	"github.com/gin-contrib/sessions/redis"
 	"github.com/gin-gonic/gin"
-	"log"
 	"one-api/common"
 	"one-api/middleware"
 	"one-api/model"
@@ -30,19 +29,19 @@ func main() {
 	// Initialize SQL Database
 	err := model.InitDB()
 	if err != nil {
-		common.FatalLog(err)
+		common.FatalLog("failed to initialize database: " + err.Error())
 	}
 	defer func() {
 		err := model.CloseDB()
 		if err != nil {
-			common.FatalLog(err)
+			common.FatalLog("failed to close database: " + err.Error())
 		}
 	}()
 
 	// Initialize Redis
 	err = common.InitRedisClient()
 	if err != nil {
-		common.FatalLog(err)
+		common.FatalLog("failed to initialize Redis: " + err.Error())
 	}
 
 	// Initialize options
@@ -53,7 +52,7 @@ func main() {
 	if os.Getenv("SYNC_FREQUENCY") != "" {
 		frequency, err := strconv.Atoi(os.Getenv("SYNC_FREQUENCY"))
 		if err != nil {
-			common.FatalLog(err)
+			common.FatalLog("failed to parse SYNC_FREQUENCY: " + err.Error())
 		}
 		go model.SyncOptions(frequency)
 		if common.RedisEnabled {
@@ -84,6 +83,6 @@ func main() {
 	}
 	err = server.Run(":" + port)
 	if err != nil {
-		log.Println(err)
+		common.FatalLog("failed to start HTTP server: " + err.Error())
 	}
 }

+ 2 - 2
model/cache.go

@@ -137,13 +137,13 @@ func InitChannelCache() {
 	channelSyncLock.Lock()
 	group2model2channels = newGroup2model2channels
 	channelSyncLock.Unlock()
-	common.SysLog("Channels synced from database")
+	common.SysLog("channels synced from database")
 }
 
 func SyncChannelCache(frequency int) {
 	for {
 		time.Sleep(time.Duration(frequency) * time.Second)
-		common.SysLog("Syncing channels from database")
+		common.SysLog("syncing channels from database")
 		InitChannelCache()
 	}
 }

+ 2 - 2
model/main.go

@@ -54,7 +54,7 @@ func InitDB() (err error) {
 			PrepareStmt: true, // precompile SQL
 		})
 	}
-	common.SysLog("Database connected")
+	common.SysLog("database connected")
 	if err == nil {
 		DB = db
 		if !common.IsMasterNode {
@@ -88,7 +88,7 @@ func InitDB() (err error) {
 		if err != nil {
 			return err
 		}
-		common.SysLog("Database migrated")
+		common.SysLog("database migrated")
 		err = createRootAccountIfNeed()
 		return err
 	} else {

+ 2 - 2
model/option.go

@@ -75,7 +75,7 @@ func loadOptionsFromDatabase() {
 	for _, option := range options {
 		err := updateOptionMap(option.Key, option.Value)
 		if err != nil {
-			common.SysError("Failed to update option map: " + err.Error())
+			common.SysError("failed to update option map: " + err.Error())
 		}
 	}
 }
@@ -83,7 +83,7 @@ func loadOptionsFromDatabase() {
 func SyncOptions(frequency int) {
 	for {
 		time.Sleep(time.Duration(frequency) * time.Second)
-		common.SysLog("Syncing options from database")
+		common.SysLog("syncing options from database")
 		loadOptionsFromDatabase()
 	}
 }

+ 1 - 1
model/redemption.go

@@ -64,7 +64,7 @@ func Redeem(key string, userId int) (quota int, err error) {
 		redemption.Status = common.RedemptionCodeStatusUsed
 		err := redemption.SelectUpdate()
 		if err != nil {
-			common.SysError("更新兑换码状态失败:" + err.Error())
+			common.SysError("failed to update redemption status: " + err.Error())
 		}
 		RecordLog(userId, LogTypeTopup, fmt.Sprintf("通过兑换码充值 %s", common.LogQuota(redemption.Quota)))
 	}()

+ 5 - 5
model/token.go

@@ -45,7 +45,7 @@ func ValidateUserToken(key string) (token *Token, err error) {
 			token.Status = common.TokenStatusExpired
 			err := token.SelectUpdate()
 			if err != nil {
-				common.SysError("更新令牌状态失败:" + err.Error())
+				common.SysError("failed to update token status" + err.Error())
 			}
 			return nil, errors.New("该令牌已过期")
 		}
@@ -53,7 +53,7 @@ func ValidateUserToken(key string) (token *Token, err error) {
 			token.Status = common.TokenStatusExhausted
 			err := token.SelectUpdate()
 			if err != nil {
-				common.SysError("更新令牌状态失败:" + err.Error())
+				common.SysError("failed to update token status" + err.Error())
 			}
 			return nil, errors.New("该令牌额度已用尽")
 		}
@@ -61,7 +61,7 @@ func ValidateUserToken(key string) (token *Token, err error) {
 			token.AccessedTime = common.GetTimestamp()
 			err := token.SelectUpdate()
 			if err != nil {
-				common.SysError("更新令牌失败:" + err.Error())
+				common.SysError("failed to update token" + err.Error())
 			}
 		}()
 		return token, nil
@@ -166,7 +166,7 @@ func PreConsumeTokenQuota(tokenId int, quota int) (err error) {
 		go func() {
 			email, err := GetUserEmail(token.UserId)
 			if err != nil {
-				common.SysError("获取用户邮箱失败:" + err.Error())
+				common.SysError("failed to fetch user email: " + err.Error())
 			}
 			prompt := "您的额度即将用尽"
 			if noMoreQuota {
@@ -177,7 +177,7 @@ func PreConsumeTokenQuota(tokenId int, quota int) (err error) {
 				err = common.SendEmail(prompt, email,
 					fmt.Sprintf("%s,当前剩余额度为 %d,为了不影响您的使用,请及时充值。<br/>充值链接:<a href='%s'>%s</a>", prompt, userQuota, topUpLink, topUpLink))
 				if err != nil {
-					common.SysError("发送邮件失败:" + err.Error())
+					common.SysError("failed to send email" + err.Error())
 				}
 			}
 		}()

+ 3 - 3
model/user.go

@@ -220,7 +220,7 @@ func IsAdmin(userId int) bool {
 	var user User
 	err := DB.Where("id = ?", userId).Select("role").Find(&user).Error
 	if err != nil {
-		common.SysError("No such user " + err.Error())
+		common.SysError("no such user " + err.Error())
 		return false
 	}
 	return user.Role >= common.RoleAdminUser
@@ -233,7 +233,7 @@ func IsUserEnabled(userId int) bool {
 	var user User
 	err := DB.Where("id = ?", userId).Select("status").Find(&user).Error
 	if err != nil {
-		common.SysError("No such user " + err.Error())
+		common.SysError("no such user " + err.Error())
 		return false
 	}
 	return user.Status == common.UserStatusEnabled
@@ -300,6 +300,6 @@ func UpdateUserUsedQuotaAndRequestCount(id int, quota int) {
 		},
 	).Error
 	if err != nil {
-		common.SysError("Failed to update user used quota and request count: " + err.Error())
+		common.SysError("failed to update user used quota and request count: " + err.Error())
 	}
 }