From 986558fea725a96542ef483fea0a5d405ab1da7f Mon Sep 17 00:00:00 2001 From: Xyfacai Date: Sun, 20 Jul 2025 10:11:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(db):=20=E4=BF=AE=E5=A4=8D=20db=20migrat?= =?UTF-8?q?ion=20=E6=8A=A5=E9=94=99=E8=BF=87=E5=A4=9A=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E5=8D=A1=E4=BD=8F=E7=9A=84=E9=9A=90=E6=82=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/model/main.go b/model/main.go index e2f9aecb..013beacd 100644 --- a/model/main.go +++ b/model/main.go @@ -260,7 +260,6 @@ func migrateDB() error { func migrateDBFast() error { var wg sync.WaitGroup - errChan := make(chan error, 12) // Buffer size matches number of migrations migrations := []struct { model interface{} @@ -279,6 +278,8 @@ func migrateDBFast() error { {&Task{}, "Task"}, {&Setup{}, "Setup"}, } + // 动态计算migration数量,确保errChan缓冲区足够大 + errChan := make(chan error, len(migrations)) for _, m := range migrations { wg.Add(1) From 7aa2972c3fce460eb4c545734f89878ac8768eaa Mon Sep 17 00:00:00 2001 From: Xyfacai Date: Sun, 20 Jul 2025 10:12:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(price):=20=E6=9C=AA=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=BB=B7=E6=A0=BC=EF=BC=8C=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E4=BB=B7=E6=A0=BC=E5=8C=B9=E9=85=8D=E7=9A=84?= =?UTF-8?q?=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/pricing.go | 2 +- relay/helper/price.go | 7 ++++--- service/quota.go | 2 +- setting/ratio_setting/model_ratio.go | 6 +++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/model/pricing.go b/model/pricing.go index 0c0216f1..a280b524 100644 --- a/model/pricing.go +++ b/model/pricing.go @@ -116,7 +116,7 @@ func updatePricing() { pricing.ModelPrice = modelPrice pricing.QuotaType = 1 } else { - modelRatio, _ := ratio_setting.GetModelRatio(model) + modelRatio, _, _ := ratio_setting.GetModelRatio(model) pricing.ModelRatio = modelRatio pricing.CompletionRatio = ratio_setting.GetCompletionRatio(model) pricing.QuotaType = 0 diff --git a/relay/helper/price.go b/relay/helper/price.go index 9995db2f..e80578e5 100644 --- a/relay/helper/price.go +++ b/relay/helper/price.go @@ -79,14 +79,15 @@ func ModelPriceHelper(c *gin.Context, info *relaycommon.RelayInfo, promptTokens preConsumedTokens = promptTokens + maxTokens } var success bool - modelRatio, success = ratio_setting.GetModelRatio(info.OriginModelName) + var matchName string + modelRatio, success, matchName = ratio_setting.GetModelRatio(info.OriginModelName) if !success { acceptUnsetRatio := false if info.UserSetting.AcceptUnsetRatioModel { acceptUnsetRatio = true } 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) @@ -152,7 +153,7 @@ func ContainPriceOrRatio(modelName string) bool { if ok { return true } - _, ok = ratio_setting.GetModelRatio(modelName) + _, ok, _ = ratio_setting.GetModelRatio(modelName) if ok { return true } diff --git a/service/quota.go b/service/quota.go index 27546ed4..0f618402 100644 --- a/service/quota.go +++ b/service/quota.go @@ -96,7 +96,7 @@ func PreWssConsumeQuota(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, usag audioInputTokens := usage.InputTokenDetails.AudioTokens audioOutTokens := usage.OutputTokenDetails.AudioTokens groupRatio := ratio_setting.GetGroupRatio(relayInfo.UsingGroup) - modelRatio, _ := ratio_setting.GetModelRatio(modelName) + modelRatio, _, _ := ratio_setting.GetModelRatio(modelName) autoGroup, exists := ctx.Get("auto_group") if exists { diff --git a/setting/ratio_setting/model_ratio.go b/setting/ratio_setting/model_ratio.go index 033b07a0..8a1d6aae 100644 --- a/setting/ratio_setting/model_ratio.go +++ b/setting/ratio_setting/model_ratio.go @@ -369,7 +369,7 @@ func handleThinkingBudgetModel(name, prefix, wildcard string) string { return name } -func GetModelRatio(name string) (float64, bool) { +func GetModelRatio(name string) (float64, bool, string) { modelRatioMapMutex.RLock() defer modelRatioMapMutex.RUnlock() @@ -380,9 +380,9 @@ func GetModelRatio(name string) (float64, bool) { } ratio, ok := modelRatioMap[name] 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 {