From 491e9b8ee4ebf4425592c948b242c8cfb91068e8 Mon Sep 17 00:00:00 2001 From: fengsilin Date: Wed, 3 Jun 2026 18:15:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(pricing):=20GetCompletionRatio=20=E4=BC=98?= =?UTF-8?q?=E5=85=88=E4=BD=BF=E7=94=A8=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=80=BC=E8=80=8C=E9=9D=9E=E7=A1=AC=E7=BC=96=E7=A0=81=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 GetCompletionRatio 中硬编码默认值优先于用户设置值的 bug。 之前硬编码的 gpt-5 前缀匹配 (return 8, true) 会直接返回, 导致用户在后台设置的 completion_ratio 被忽略。 现在改为先查 completionRatioMap(用户设置),再查硬编码默认值。 --- setting/ratio_setting/model_ratio.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/setting/ratio_setting/model_ratio.go b/setting/ratio_setting/model_ratio.go index 7e36362..a56583b 100644 --- a/setting/ratio_setting/model_ratio.go +++ b/setting/ratio_setting/model_ratio.go @@ -460,18 +460,16 @@ func UpdateCompletionRatioByJSONString(jsonStr string) error { func GetCompletionRatio(name string) float64 { name = FormatMatchingModelName(name) + // 优先查用户设置的值(completionRatioMap),再查硬编码默认值 if strings.Contains(name, "/") { if ratio, ok := completionRatioMap.Get(name); ok { return ratio } } - hardCodedRatio, contain := getHardcodedCompletionModelRatio(name) - if contain { - return hardCodedRatio - } if ratio, ok := completionRatioMap.Get(name); ok { return ratio } + hardCodedRatio, _ := getHardcodedCompletionModelRatio(name) return hardCodedRatio }