From 7aa2972c3fce460eb4c545734f89878ac8768eaa Mon Sep 17 00:00:00 2001 From: Xyfacai Date: Sun, 20 Jul 2025 10:12:36 +0800 Subject: [PATCH] =?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 {