Spaces:
Build error
Build error
| package model | |
| import ( | |
| "strings" | |
| ) | |
| // 简化的供应商映射规则 | |
| var defaultVendorRules = map[string]string{ | |
| "gpt": "OpenAI", | |
| "dall-e": "OpenAI", | |
| "whisper": "OpenAI", | |
| "o1": "OpenAI", | |
| "o3": "OpenAI", | |
| "claude": "Anthropic", | |
| "gemini": "Google", | |
| "moonshot": "Moonshot", | |
| "kimi": "Moonshot", | |
| "chatglm": "智谱", | |
| "glm-": "智谱", | |
| "qwen": "阿里巴巴", | |
| "deepseek": "DeepSeek", | |
| "abab": "MiniMax", | |
| "ernie": "百度", | |
| "spark": "讯飞", | |
| "hunyuan": "腾讯", | |
| "command": "Cohere", | |
| "@cf/": "Cloudflare", | |
| "360": "360", | |
| "yi": "零一万物", | |
| "jina": "Jina", | |
| "mistral": "Mistral", | |
| "grok": "xAI", | |
| "llama": "Meta", | |
| "doubao": "字节跳动", | |
| "kling": "快手", | |
| "jimeng": "即梦", | |
| "vidu": "Vidu", | |
| } | |
| // 供应商默认图标映射 | |
| var defaultVendorIcons = map[string]string{ | |
| "OpenAI": "OpenAI", | |
| "Anthropic": "Claude.Color", | |
| "Google": "Gemini.Color", | |
| "Moonshot": "Moonshot", | |
| "智谱": "Zhipu.Color", | |
| "阿里巴巴": "Qwen.Color", | |
| "DeepSeek": "DeepSeek.Color", | |
| "MiniMax": "Minimax.Color", | |
| "百度": "Wenxin.Color", | |
| "讯飞": "Spark.Color", | |
| "腾讯": "Hunyuan.Color", | |
| "Cohere": "Cohere.Color", | |
| "Cloudflare": "Cloudflare.Color", | |
| "360": "Ai360.Color", | |
| "零一万物": "Yi.Color", | |
| "Jina": "Jina", | |
| "Mistral": "Mistral.Color", | |
| "xAI": "XAI", | |
| "Meta": "Ollama", | |
| "字节跳动": "Doubao.Color", | |
| "快手": "Kling.Color", | |
| "即梦": "Jimeng.Color", | |
| "Vidu": "Vidu", | |
| "微软": "AzureAI", | |
| "Microsoft": "AzureAI", | |
| "Azure": "AzureAI", | |
| } | |
| // initDefaultVendorMapping 简化的默认供应商映射 | |
| 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 | |
| } | |
| // 匹配供应商 | |
| vendorID := 0 | |
| modelLower := strings.ToLower(modelName) | |
| for pattern, vendorName := range defaultVendorRules { | |
| if strings.Contains(modelLower, pattern) { | |
| vendorID = getOrCreateVendor(vendorName, vendorMap) | |
| break | |
| } | |
| } | |
| // 创建模型元数据 | |
| metaMap[modelName] = &Model{ | |
| ModelName: modelName, | |
| VendorID: vendorID, | |
| Status: 1, | |
| NameRule: NameRuleExact, | |
| } | |
| } | |
| } | |
| // 查找或创建供应商 | |
| func getOrCreateVendor(vendorName string, vendorMap map[int]*Vendor) int { | |
| // 查找现有供应商 | |
| for id, vendor := range vendorMap { | |
| if vendor.Name == vendorName { | |
| return id | |
| } | |
| } | |
| // 创建新供应商 | |
| newVendor := &Vendor{ | |
| Name: vendorName, | |
| Status: 1, | |
| Icon: getDefaultVendorIcon(vendorName), | |
| } | |
| if err := newVendor.Insert(); err != nil { | |
| return 0 | |
| } | |
| vendorMap[newVendor.Id] = newVendor | |
| return newVendor.Id | |
| } | |
| // 获取供应商默认图标 | |
| func getDefaultVendorIcon(vendorName string) string { | |
| if icon, exists := defaultVendorIcons[vendorName]; exists { | |
| return icon | |
| } | |
| return "" | |
| } | |