Просмотр исходного кода

Merge remote-tracking branch 'origin/alpha' into refactor/layout-Ⅱ

t0ng7u 7 месяцев назад
Родитель
Сommit
1d4ecad134
5 измененных файлов с 11 добавлено и 9 удалено
  1. 2 1
      model/main.go
  2. 1 1
      model/pricing.go
  3. 4 3
      relay/helper/price.go
  4. 1 1
      service/quota.go
  5. 3 3
      setting/ratio_setting/model_ratio.go

+ 2 - 1
model/main.go

@@ -260,7 +260,6 @@ func migrateDB() error {
 
 
 func migrateDBFast() error {
 func migrateDBFast() error {
 	var wg sync.WaitGroup
 	var wg sync.WaitGroup
-	errChan := make(chan error, 12) // Buffer size matches number of migrations
 
 
 	migrations := []struct {
 	migrations := []struct {
 		model interface{}
 		model interface{}
@@ -279,6 +278,8 @@ func migrateDBFast() error {
 		{&Task{}, "Task"},
 		{&Task{}, "Task"},
 		{&Setup{}, "Setup"},
 		{&Setup{}, "Setup"},
 	}
 	}
+	// 动态计算migration数量,确保errChan缓冲区足够大
+	errChan := make(chan error, len(migrations))
 
 
 	for _, m := range migrations {
 	for _, m := range migrations {
 		wg.Add(1)
 		wg.Add(1)

+ 1 - 1
model/pricing.go

@@ -116,7 +116,7 @@ func updatePricing() {
 			pricing.ModelPrice = modelPrice
 			pricing.ModelPrice = modelPrice
 			pricing.QuotaType = 1
 			pricing.QuotaType = 1
 		} else {
 		} else {
-			modelRatio, _ := ratio_setting.GetModelRatio(model)
+			modelRatio, _, _ := ratio_setting.GetModelRatio(model)
 			pricing.ModelRatio = modelRatio
 			pricing.ModelRatio = modelRatio
 			pricing.CompletionRatio = ratio_setting.GetCompletionRatio(model)
 			pricing.CompletionRatio = ratio_setting.GetCompletionRatio(model)
 			pricing.QuotaType = 0
 			pricing.QuotaType = 0

+ 4 - 3
relay/helper/price.go

@@ -79,14 +79,15 @@ func ModelPriceHelper(c *gin.Context, info *relaycommon.RelayInfo, promptTokens
 			preConsumedTokens = promptTokens + maxTokens
 			preConsumedTokens = promptTokens + maxTokens
 		}
 		}
 		var success bool
 		var success bool
-		modelRatio, success = ratio_setting.GetModelRatio(info.OriginModelName)
+		var matchName string
+		modelRatio, success, matchName = ratio_setting.GetModelRatio(info.OriginModelName)
 		if !success {
 		if !success {
 			acceptUnsetRatio := false
 			acceptUnsetRatio := false
 			if info.UserSetting.AcceptUnsetRatioModel {
 			if info.UserSetting.AcceptUnsetRatioModel {
 				acceptUnsetRatio = true
 				acceptUnsetRatio = true
 			}
 			}
 			if !acceptUnsetRatio {
 			if !acceptUnsetRatio {
-				return PriceData{}, fmt.Errorf("模型 %s 倍率或价格未配置,请联系管理员设置或开始自用模式;Model %s ratio or price not set, please set or start self-use mode", info.OriginModelName, info.OriginModelName)
+				return PriceData{}, fmt.Errorf("模型 %s 倍率或价格未配置,请联系管理员设置或开始自用模式;Model %s ratio or price not set, please set or start self-use mode", matchName, matchName)
 			}
 			}
 		}
 		}
 		completionRatio = ratio_setting.GetCompletionRatio(info.OriginModelName)
 		completionRatio = ratio_setting.GetCompletionRatio(info.OriginModelName)
@@ -152,7 +153,7 @@ func ContainPriceOrRatio(modelName string) bool {
 	if ok {
 	if ok {
 		return true
 		return true
 	}
 	}
-	_, ok = ratio_setting.GetModelRatio(modelName)
+	_, ok, _ = ratio_setting.GetModelRatio(modelName)
 	if ok {
 	if ok {
 		return true
 		return true
 	}
 	}

+ 1 - 1
service/quota.go

@@ -96,7 +96,7 @@ func PreWssConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, usag
 	audioInputTokens := usage.InputTokenDetails.AudioTokens
 	audioInputTokens := usage.InputTokenDetails.AudioTokens
 	audioOutTokens := usage.OutputTokenDetails.AudioTokens
 	audioOutTokens := usage.OutputTokenDetails.AudioTokens
 	groupRatio := ratio_setting.GetGroupRatio(relayInfo.UsingGroup)
 	groupRatio := ratio_setting.GetGroupRatio(relayInfo.UsingGroup)
-	modelRatio, _ := ratio_setting.GetModelRatio(modelName)
+	modelRatio, _, _ := ratio_setting.GetModelRatio(modelName)
 
 
 	autoGroup, exists := ctx.Get("auto_group")
 	autoGroup, exists := ctx.Get("auto_group")
 	if exists {
 	if exists {

+ 3 - 3
setting/ratio_setting/model_ratio.go

@@ -369,7 +369,7 @@ func handleThinkingBudgetModel(name, prefix, wildcard string) string {
 	return name
 	return name
 }
 }
 
 
-func GetModelRatio(name string) (float64, bool) {
+func GetModelRatio(name string) (float64, bool, string) {
 	modelRatioMapMutex.RLock()
 	modelRatioMapMutex.RLock()
 	defer modelRatioMapMutex.RUnlock()
 	defer modelRatioMapMutex.RUnlock()
 
 
@@ -380,9 +380,9 @@ func GetModelRatio(name string) (float64, bool) {
 	}
 	}
 	ratio, ok := modelRatioMap[name]
 	ratio, ok := modelRatioMap[name]
 	if !ok {
 	if !ok {
-		return 37.5, operation_setting.SelfUseModeEnabled
+		return 37.5, operation_setting.SelfUseModeEnabled, name
 	}
 	}
-	return ratio, true
+	return ratio, true, name
 }
 }
 
 
 func DefaultModelRatio2JSONString() string {
 func DefaultModelRatio2JSONString() string {