From 06aa7071413cb5c15c5420ea86ddc1443e704e0f Mon Sep 17 00:00:00 2001 From: xiezhouwei Date: Thu, 18 Jun 2026 18:07:47 +0800 Subject: [PATCH] fix: add seedance vendor rule and improve vendor_id auto-mapping for existing records --- model/pricing_default.go | 30 ++++++++++++++++++++++-------- service/model_meta_infer.go | 1 + 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/model/pricing_default.go b/model/pricing_default.go index db64caf..bb21283 100644 --- a/model/pricing_default.go +++ b/model/pricing_default.go @@ -32,6 +32,7 @@ var defaultVendorRules = map[string]string{ "grok": "xAI", "llama": "Meta", "doubao": "字节跳动", + "seedance": "字节跳动", "kling": "快手", "jimeng": "即梦", "vidu": "Vidu", @@ -71,8 +72,12 @@ var defaultVendorIcons = map[string]string{ func initDefaultVendorMapping(metaMap map[string]*Model, vendorMap map[int]*Vendor, enableAbilities []AbilityWithChannel) { for _, ability := range enableAbilities { modelName := ability.Model - if _, exists := metaMap[modelName]; exists { - continue + if existing, exists := metaMap[modelName]; exists { + // 已有记录但 vendor_id 已赋值 → 跳过 + if existing.VendorID != 0 { + continue + } + // vendor_id=0 → 继续尝试匹配(修复已有 DB 记录但缺供应商的场景) } // 匹配供应商 @@ -85,12 +90,21 @@ func initDefaultVendorMapping(metaMap map[string]*Model, vendorMap map[int]*Vend } } - // 创建模型元数据 - metaMap[modelName] = &Model{ - ModelName: modelName, - VendorID: vendorID, - Status: 1, - NameRule: NameRuleExact, + if vendorID == 0 { + // 仍未匹配到供应商 → 跳过(不给未匹配的模型写入 vendor_id=0 覆盖已有记录) + continue + } + + // 写入或更新供应商 ID + if existing, exists := metaMap[modelName]; exists { + existing.VendorID = vendorID + } else { + metaMap[modelName] = &Model{ + ModelName: modelName, + VendorID: vendorID, + Status: 1, + NameRule: NameRuleExact, + } } } } diff --git a/service/model_meta_infer.go b/service/model_meta_infer.go index ccfe84d..e27f8f4 100644 --- a/service/model_meta_infer.go +++ b/service/model_meta_infer.go @@ -324,6 +324,7 @@ var vendorKeywordAliases = []struct { {"moonshot", []string{"moonshot"}}, {"kimi", []string{"moonshot"}}, {"doubao", []string{"bytedance", "volcengine", "volcano"}}, + {"seedance", []string{"bytedance", "volcengine", "volcano", "doubao"}}, {"ernie", []string{"baidu"}}, {"wenxin", []string{"baidu"}}, {"hunyuan", []string{"tencent"}},