mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-08-29 03:51:54 +08:00
40b3c82ab4
Register zhipu as a public OpenAI-compat provider with GLM catalog seeds, Anthropic passthrough routing, and v4-style base URL path handling.
375 lines
19 KiB
Go
375 lines
19 KiB
Go
// Copyright 2019 Yunion
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package models
|
|
|
|
import (
|
|
"strings"
|
|
|
|
api "yunion.io/x/onecloud/pkg/apis/aiproxy"
|
|
)
|
|
|
|
// catalogSeedModel is a known upstream model id for built-in provider_key values.
|
|
// ModelKey is the id sent to the upstream API (no "provider/" prefix).
|
|
type catalogSeedModel struct {
|
|
ModelKey string
|
|
Description string
|
|
}
|
|
|
|
// catalogSeedModelsForProvider returns known public model ids for a provider_key.
|
|
// Used when creating ai_provider (PostCreate) and connectivity-test catalog fallback.
|
|
// Providers without a list return nil and a placeholder model_key "default" is used.
|
|
func catalogSeedModelsForProvider(providerKey string) []catalogSeedModel {
|
|
switch providerKey {
|
|
case api.ProviderKeyAnthropic:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "claude-opus-4-20250514", Description: "Anthropic Claude Opus 4"},
|
|
{ModelKey: "claude-sonnet-4-20250514", Description: "Anthropic Claude Sonnet 4"},
|
|
{ModelKey: "claude-3-7-sonnet-20250219", Description: "Anthropic Claude 3.7 Sonnet"},
|
|
{ModelKey: "claude-3-5-sonnet-20241022", Description: "Anthropic Claude 3.5 Sonnet"},
|
|
{ModelKey: "claude-3-5-haiku-20241022", Description: "Anthropic Claude 3.5 Haiku"},
|
|
{ModelKey: "claude-3-opus-20240229", Description: "Anthropic Claude 3 Opus"},
|
|
{ModelKey: "claude-3-haiku-20240307", Description: "Anthropic Claude 3 Haiku"},
|
|
}
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyAzure:
|
|
// // Azure OpenAI uses deployment names; these match common Azure OpenAI deployment ids.
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "gpt-4o", Description: "Azure OpenAI GPT-4o deployment"},
|
|
// {ModelKey: "gpt-4o-mini", Description: "Azure OpenAI GPT-4o mini deployment"},
|
|
// {ModelKey: "gpt-4", Description: "Azure OpenAI GPT-4 deployment"},
|
|
// {ModelKey: "gpt-35-turbo", Description: "Azure OpenAI GPT-3.5 Turbo deployment"},
|
|
// {ModelKey: "o3-mini", Description: "Azure OpenAI o3-mini deployment"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyBedrock:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "anthropic.claude-3-5-sonnet-20241022-v2:0", Description: "Bedrock Claude 3.5 Sonnet"},
|
|
// {ModelKey: "anthropic.claude-3-5-haiku-20241022-v1:0", Description: "Bedrock Claude 3.5 Haiku"},
|
|
// {ModelKey: "anthropic.claude-3-opus-20240229-v1:0", Description: "Bedrock Claude 3 Opus"},
|
|
// {ModelKey: "anthropic.claude-3-sonnet-20240229-v1:0", Description: "Bedrock Claude 3 Sonnet"},
|
|
// {ModelKey: "anthropic.claude-3-haiku-20240307-v1:0", Description: "Bedrock Claude 3 Haiku"},
|
|
// {ModelKey: "meta.llama3-70b-instruct-v1:0", Description: "Bedrock Llama 3 70B Instruct"},
|
|
// {ModelKey: "meta.llama3-8b-instruct-v1:0", Description: "Bedrock Llama 3 8B Instruct"},
|
|
// {ModelKey: "mistral.mistral-large-2402-v1:0", Description: "Bedrock Mistral Large"},
|
|
// {ModelKey: "amazon.titan-text-express-v1", Description: "Bedrock Amazon Titan Text Express"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyCerebras:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "llama3.1-8b", Description: "Cerebras Llama 3.1 8B"},
|
|
// {ModelKey: "llama3.1-70b", Description: "Cerebras Llama 3.1 70B"},
|
|
// {ModelKey: "llama-3.3-70b", Description: "Cerebras Llama 3.3 70B"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyCohere:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "command-r-plus", Description: "Cohere Command R+"},
|
|
// {ModelKey: "command-r", Description: "Cohere Command R"},
|
|
// {ModelKey: "command-a", Description: "Cohere Command A"},
|
|
// {ModelKey: "command", Description: "Cohere Command"},
|
|
// {ModelKey: "command-light", Description: "Cohere Command Light"},
|
|
// {ModelKey: "embed-english-v3.0", Description: "Cohere Embed English v3"},
|
|
// {ModelKey: "embed-multilingual-v3.0", Description: "Cohere Embed Multilingual v3"},
|
|
// }
|
|
case api.ProviderKeyDeepseek:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "deepseek-v4-flash", Description: "DeepSeek-V4-Flash; 1M context; high concurrency (2500); cost-efficient default"},
|
|
{ModelKey: "deepseek-v4-pro", Description: "DeepSeek-V4-Pro; 1M context; frontier reasoning/coding/agents (500 concurrency)"},
|
|
}
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyElevenlabs:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "eleven_multilingual_v2", Description: "ElevenLabs multilingual v2"},
|
|
// {ModelKey: "eleven_turbo_v2_5", Description: "ElevenLabs Turbo v2.5"},
|
|
// {ModelKey: "eleven_flash_v2_5", Description: "ElevenLabs Flash v2.5"},
|
|
// {ModelKey: "eleven_multilingual_v1", Description: "ElevenLabs multilingual v1"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyFireworks:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "accounts/fireworks/models/llama-v3p1-8b-instruct", Description: "Fireworks Llama 3.1 8B Instruct"},
|
|
// {ModelKey: "accounts/fireworks/models/llama-v3p1-70b-instruct", Description: "Fireworks Llama 3.1 70B Instruct"},
|
|
// {ModelKey: "accounts/fireworks/models/llama-v3p3-70b-instruct", Description: "Fireworks Llama 3.3 70B Instruct"},
|
|
// {ModelKey: "accounts/fireworks/models/mixtral-8x7b-instruct", Description: "Fireworks Mixtral 8x7B Instruct"},
|
|
// }
|
|
case api.ProviderKeyGemini:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "gemini-2.0-flash", Description: "Google Gemini 2.0 Flash"},
|
|
{ModelKey: "gemini-2.0-flash-lite", Description: "Google Gemini 2.0 Flash-Lite"},
|
|
{ModelKey: "gemini-1.5-pro", Description: "Google Gemini 1.5 Pro"},
|
|
{ModelKey: "gemini-1.5-flash", Description: "Google Gemini 1.5 Flash"},
|
|
{ModelKey: "gemini-1.5-flash-8b", Description: "Google Gemini 1.5 Flash 8B"},
|
|
{ModelKey: "gemini-embedding-001", Description: "Google Gemini Embedding 001"},
|
|
}
|
|
case api.ProviderKeyGroq:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "llama-3.3-70b-versatile", Description: "Groq Llama 3.3 70B Versatile"},
|
|
{ModelKey: "llama-3.1-8b-instant", Description: "Groq Llama 3.1 8B Instant"},
|
|
{ModelKey: "llama-3.1-70b-versatile", Description: "Groq Llama 3.1 70B Versatile"},
|
|
{ModelKey: "mixtral-8x7b-32768", Description: "Groq Mixtral 8x7B"},
|
|
{ModelKey: "gemma2-9b-it", Description: "Groq Gemma2 9B IT"},
|
|
}
|
|
case api.ProviderKeyHuggingface:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "meta-llama/Meta-Llama-3.1-8B-Instruct", Description: "HF Llama 3.1 8B Instruct"},
|
|
{ModelKey: "meta-llama/Meta-Llama-3.1-70B-Instruct", Description: "HF Llama 3.1 70B Instruct"},
|
|
{ModelKey: "mistralai/Mistral-7B-Instruct-v0.3", Description: "HF Mistral 7B Instruct"},
|
|
{ModelKey: "Qwen/Qwen2.5-72B-Instruct", Description: "HF Qwen2.5 72B Instruct"},
|
|
}
|
|
case api.ProviderKeyMistral:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "mistral-large-latest", Description: "Mistral Large (latest)"},
|
|
{ModelKey: "mistral-small-latest", Description: "Mistral Small (latest)"},
|
|
{ModelKey: "pixtral-12b-2409", Description: "Mistral Pixtral 12B"},
|
|
{ModelKey: "codestral-latest", Description: "Mistral Codestral (latest)"},
|
|
{ModelKey: "ministral-8b-latest", Description: "Mistral Ministral 8B"},
|
|
{ModelKey: "open-mistral-nemo", Description: "Mistral Open Mistral Nemo"},
|
|
{ModelKey: "mixtral-8x22b", Description: "Mistral Mixtral 8x22B"},
|
|
{ModelKey: "mixtral-8x7b", Description: "Mistral Mixtral 8x7B"},
|
|
}
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyNebius:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "deepseek-ai/DeepSeek-V3", Description: "Nebius DeepSeek V3"},
|
|
// {ModelKey: "Qwen/Qwen2.5-72B-Instruct", Description: "Nebius Qwen2.5 72B Instruct"},
|
|
// {ModelKey: "meta-llama/Llama-3.3-70B-Instruct", Description: "Nebius Llama 3.3 70B Instruct"},
|
|
// }
|
|
case api.ProviderKeyOllama:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "llama3.2", Description: "Ollama Llama 3.2"},
|
|
{ModelKey: "llama3.1", Description: "Ollama Llama 3.1"},
|
|
{ModelKey: "mistral", Description: "Ollama Mistral"},
|
|
{ModelKey: "qwen2.5", Description: "Ollama Qwen 2.5"},
|
|
{ModelKey: "codellama", Description: "Ollama Code Llama"},
|
|
{ModelKey: "phi3", Description: "Ollama Phi 3"},
|
|
}
|
|
case api.ProviderKeyVLLM:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "meta-llama/Meta-Llama-3.1-8B-Instruct", Description: "vLLM Llama 3.1 8B Instruct"},
|
|
{ModelKey: "meta-llama/Meta-Llama-3.1-70B-Instruct", Description: "vLLM Llama 3.1 70B Instruct"},
|
|
{ModelKey: "Qwen/Qwen2.5-7B-Instruct", Description: "vLLM Qwen2.5 7B Instruct"},
|
|
{ModelKey: "Qwen/Qwen2.5-72B-Instruct", Description: "vLLM Qwen2.5 72B Instruct"},
|
|
{ModelKey: "mistralai/Mistral-7B-Instruct-v0.3", Description: "vLLM Mistral 7B Instruct"},
|
|
}
|
|
case api.ProviderKeyOpenAI:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "gpt-5-nano", Description: "OpenAI GPT-5 nano"},
|
|
{ModelKey: "gpt-5-mini", Description: "OpenAI GPT-5 mini"},
|
|
{ModelKey: "gpt-5", Description: "OpenAI GPT-5"},
|
|
{ModelKey: "gpt-5.1", Description: "OpenAI GPT-5.1"},
|
|
{ModelKey: "gpt-5.1-mini", Description: "OpenAI GPT-5.1 mini"},
|
|
{ModelKey: "gpt-5.1-codex", Description: "OpenAI GPT-5.1 Codex"},
|
|
{ModelKey: "gpt-5.1-codex-max", Description: "OpenAI GPT-5.1 Codex Max"},
|
|
{ModelKey: "gpt-5.2", Description: "OpenAI GPT-5.2"},
|
|
{ModelKey: "gpt-5.2-pro", Description: "OpenAI GPT-5.2 pro"},
|
|
{ModelKey: "gpt-5.2-codex", Description: "OpenAI GPT-5.2 Codex"},
|
|
{ModelKey: "gpt-4.1", Description: "OpenAI GPT-4.1"},
|
|
{ModelKey: "gpt-4.1-mini", Description: "OpenAI GPT-4.1 mini"},
|
|
{ModelKey: "gpt-4.1-nano", Description: "OpenAI GPT-4.1 nano"},
|
|
{ModelKey: "gpt-4o", Description: "OpenAI GPT-4o"},
|
|
{ModelKey: "gpt-4o-mini", Description: "OpenAI GPT-4o mini"},
|
|
{ModelKey: "chatgpt-4o-latest", Description: "OpenAI ChatGPT-4o latest"},
|
|
{ModelKey: "gpt-4-turbo", Description: "OpenAI GPT-4 Turbo"},
|
|
{ModelKey: "gpt-4", Description: "OpenAI GPT-4"},
|
|
{ModelKey: "gpt-3.5-turbo", Description: "OpenAI GPT-3.5 Turbo"},
|
|
{ModelKey: "o1", Description: "OpenAI o1"},
|
|
{ModelKey: "o1-mini", Description: "OpenAI o1-mini"},
|
|
{ModelKey: "o1-preview", Description: "OpenAI o1-preview"},
|
|
{ModelKey: "o3", Description: "OpenAI o3"},
|
|
{ModelKey: "o3-mini", Description: "OpenAI o3-mini"},
|
|
{ModelKey: "o4-mini", Description: "OpenAI o4-mini"},
|
|
{ModelKey: "text-embedding-3-small", Description: "OpenAI text-embedding-3-small"},
|
|
{ModelKey: "text-embedding-3-large", Description: "OpenAI text-embedding-3-large"},
|
|
{ModelKey: "text-embedding-ada-002", Description: "OpenAI text-embedding-ada-002"},
|
|
}
|
|
case api.ProviderKeyOpenrouter:
|
|
return []catalogSeedModel{
|
|
{ModelKey: "openai/gpt-4o", Description: "OpenRouter OpenAI GPT-4o"},
|
|
{ModelKey: "openai/gpt-4o-mini", Description: "OpenRouter OpenAI GPT-4o mini"},
|
|
{ModelKey: "anthropic/claude-3.5-sonnet", Description: "OpenRouter Claude 3.5 Sonnet"},
|
|
{ModelKey: "anthropic/claude-3.5-haiku", Description: "OpenRouter Claude 3.5 Haiku"},
|
|
{ModelKey: "google/gemini-2.0-flash-001", Description: "OpenRouter Gemini 2.0 Flash"},
|
|
{ModelKey: "meta-llama/llama-3.3-70b-instruct", Description: "OpenRouter Llama 3.3 70B Instruct"},
|
|
{ModelKey: "mistralai/mistral-large", Description: "OpenRouter Mistral Large"},
|
|
}
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyPerplexity:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "sonar", Description: "Perplexity Sonar"},
|
|
// {ModelKey: "sonar-pro", Description: "Perplexity Sonar Pro"},
|
|
// {ModelKey: "sonar-reasoning", Description: "Perplexity Sonar Reasoning"},
|
|
// {ModelKey: "llama-3.1-sonar-small-128k-online", Description: "Perplexity Llama 3.1 Sonar Small online"},
|
|
// {ModelKey: "llama-3.1-sonar-large-128k-online", Description: "Perplexity Llama 3.1 Sonar Large online"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyReplicate:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "meta/meta-llama-3-8b-instruct", Description: "Replicate Meta Llama 3 8B Instruct"},
|
|
// {ModelKey: "meta/meta-llama-3-70b-instruct", Description: "Replicate Meta Llama 3 70B Instruct"},
|
|
// {ModelKey: "mistralai/mixtral-8x7b-instruct-v0.1", Description: "Replicate Mixtral 8x7B Instruct"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyRunway:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "gen3a_turbo", Description: "Runway Gen-3 Alpha Turbo"},
|
|
// {ModelKey: "gen3a", Description: "Runway Gen-3 Alpha"},
|
|
// {ModelKey: "gen4_aleph", Description: "Runway Gen-4 Aleph"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyVertex:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "gemini-2.0-flash", Description: "Vertex AI Gemini 2.0 Flash"},
|
|
// {ModelKey: "gemini-1.5-pro", Description: "Vertex AI Gemini 1.5 Pro"},
|
|
// {ModelKey: "gemini-1.5-flash", Description: "Vertex AI Gemini 1.5 Flash"},
|
|
// {ModelKey: "publishers/google/models/gemini-1.5-pro", Description: "Vertex publisher path Gemini 1.5 Pro"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyXai:
|
|
// return []catalogSeedModel{
|
|
// {ModelKey: "grok-3", Description: "xAI Grok 3"},
|
|
// {ModelKey: "grok-3-mini", Description: "xAI Grok 3 mini"},
|
|
// {ModelKey: "grok-2-latest", Description: "xAI Grok 2 latest"},
|
|
// {ModelKey: "grok-2-1212", Description: "xAI Grok 2 1212"},
|
|
// {ModelKey: "grok-beta", Description: "xAI Grok beta"},
|
|
// }
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyAliyun:
|
|
// return aliyunQwenSeedModels()
|
|
// disabled: uncommon provider
|
|
// case api.ProviderKeyBaidu:
|
|
// return baiduErnieSeedModels()
|
|
case api.ProviderKeyXiaomi:
|
|
return xiaomiMimoSeedModels()
|
|
case api.ProviderKeyMoonshot:
|
|
return moonshotKimiSeedModels()
|
|
case api.ProviderKeyZhipu:
|
|
return zhipuGLMSeedModels()
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
func aliyunQwenSeedModels() []catalogSeedModel {
|
|
return []catalogSeedModel{
|
|
{ModelKey: "qwen-turbo", Description: "Alibaba Qwen Turbo"},
|
|
{ModelKey: "qwen-plus", Description: "Alibaba Qwen Plus"},
|
|
{ModelKey: "qwen-max", Description: "Alibaba Qwen Max"},
|
|
{ModelKey: "qwen-long", Description: "Alibaba Qwen Long context"},
|
|
{ModelKey: "qwen-vl-max", Description: "Alibaba Qwen-VL Max"},
|
|
{ModelKey: "qwen-vl-plus", Description: "Alibaba Qwen-VL Plus"},
|
|
{ModelKey: "qwen-vl-ocr", Description: "Alibaba Qwen-VL OCR"},
|
|
{ModelKey: "qwen2.5-0.5b-instruct", Description: "Alibaba Qwen2.5 0.5B Instruct"},
|
|
{ModelKey: "qwen2.5-1.5b-instruct", Description: "Alibaba Qwen2.5 1.5B Instruct"},
|
|
{ModelKey: "qwen2.5-3b-instruct", Description: "Alibaba Qwen2.5 3B Instruct"},
|
|
{ModelKey: "qwen2.5-7b-instruct", Description: "Alibaba Qwen2.5 7B Instruct"},
|
|
{ModelKey: "qwen2.5-14b-instruct", Description: "Alibaba Qwen2.5 14B Instruct"},
|
|
{ModelKey: "qwen2.5-32b-instruct", Description: "Alibaba Qwen2.5 32B Instruct"},
|
|
{ModelKey: "qwen2.5-72b-instruct", Description: "Alibaba Qwen2.5 72B Instruct"},
|
|
{ModelKey: "qwen2.5-coder-7b-instruct", Description: "Alibaba Qwen2.5 Coder 7B Instruct"},
|
|
{ModelKey: "qwen2.5-coder-32b-instruct", Description: "Alibaba Qwen2.5 Coder 32B Instruct"},
|
|
{ModelKey: "qwen3-30b-a3b", Description: "Alibaba Qwen3 30B A3B MoE"},
|
|
{ModelKey: "qwen3-32b", Description: "Alibaba Qwen3 32B"},
|
|
{ModelKey: "qwen3-235b-a22b", Description: "Alibaba Qwen3 235B A22B MoE"},
|
|
{ModelKey: "qwen-math-plus", Description: "Alibaba Qwen Math Plus"},
|
|
{ModelKey: "qwen-coder-plus", Description: "Alibaba Qwen Coder Plus"},
|
|
{ModelKey: "text-embedding-v3", Description: "Alibaba text-embedding-v3"},
|
|
{ModelKey: "text-embedding-v4", Description: "Alibaba text-embedding-v4"},
|
|
}
|
|
}
|
|
|
|
func baiduErnieSeedModels() []catalogSeedModel {
|
|
return []catalogSeedModel{
|
|
{ModelKey: "ernie-4.0-turbo-8k", Description: "Baidu ERNIE 4.0 Turbo 8K"},
|
|
{ModelKey: "ernie-4.0-8k", Description: "Baidu ERNIE 4.0 8K"},
|
|
{ModelKey: "ernie-4.0-turbo-128k", Description: "Baidu ERNIE 4.0 Turbo 128K"},
|
|
{ModelKey: "ernie-3.5-8k", Description: "Baidu ERNIE 3.5 8K"},
|
|
{ModelKey: "ernie-3.5-128k", Description: "Baidu ERNIE 3.5 128K"},
|
|
{ModelKey: "ernie-speed-128k", Description: "Baidu ERNIE Speed 128K"},
|
|
{ModelKey: "ernie-lite-8k", Description: "Baidu ERNIE Lite 8K"},
|
|
{ModelKey: "ernie-char-8k", Description: "Baidu ERNIE Character 8K"},
|
|
{ModelKey: "embedding-v1", Description: "Baidu Wenxin embedding-v1"},
|
|
{ModelKey: "tao-8k", Description: "Baidu ERNIE Tao 8K"},
|
|
}
|
|
}
|
|
|
|
func xiaomiMimoSeedModels() []catalogSeedModel {
|
|
return []catalogSeedModel{
|
|
{ModelKey: "mimo-v2.5-pro", Description: "Xiaomi MiMo 2.5 Pro (flagship text)"},
|
|
{ModelKey: "mimo-v2-pro", Description: "Xiaomi MiMo 2 Pro"},
|
|
{ModelKey: "mimo-v2.5", Description: "Xiaomi MiMo 2.5 (multimodal text)"},
|
|
{ModelKey: "mimo-v2-omni", Description: "Xiaomi MiMo 2 Omni (multimodal)"},
|
|
{ModelKey: "mimo-v2-flash", Description: "Xiaomi MiMo 2 Flash (fast)"},
|
|
}
|
|
}
|
|
|
|
var catalogSeedProviderKeys = []string{
|
|
api.ProviderKeyAnthropic,
|
|
api.ProviderKeyDeepseek,
|
|
api.ProviderKeyGemini,
|
|
api.ProviderKeyGroq,
|
|
api.ProviderKeyHuggingface,
|
|
api.ProviderKeyMistral,
|
|
api.ProviderKeyOllama,
|
|
api.ProviderKeyVLLM,
|
|
api.ProviderKeyOpenAI,
|
|
api.ProviderKeyOpenrouter,
|
|
api.ProviderKeyXiaomi,
|
|
api.ProviderKeyMoonshot,
|
|
}
|
|
|
|
// CatalogSeedDescription returns a known description for modelKey from built-in seed catalogs.
|
|
func CatalogSeedDescription(modelKey string) string {
|
|
modelKey = strings.TrimSpace(modelKey)
|
|
if modelKey == "" {
|
|
return ""
|
|
}
|
|
for _, providerKey := range catalogSeedProviderKeys {
|
|
for _, item := range catalogSeedModelsForProvider(providerKey) {
|
|
if item.ModelKey == modelKey {
|
|
return item.Description
|
|
}
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func moonshotKimiSeedModels() []catalogSeedModel {
|
|
return []catalogSeedModel{
|
|
{ModelKey: "kimi-k2.7-code", Description: "Moonshot Kimi K2.7 Code"},
|
|
{ModelKey: "kimi-k2.7-code-highspeed", Description: "Moonshot Kimi K2.7 Code (highspeed)"},
|
|
{ModelKey: "kimi-k2.6", Description: "Moonshot Kimi K2.6"},
|
|
{ModelKey: "kimi-k2.5", Description: "Moonshot Kimi K2.5"},
|
|
{ModelKey: "moonshot-v1-8k", Description: "Moonshot v1 8K"},
|
|
{ModelKey: "moonshot-v1-32k", Description: "Moonshot v1 32K"},
|
|
{ModelKey: "moonshot-v1-128k", Description: "Moonshot v1 128K"},
|
|
{ModelKey: "moonshot-v1-auto", Description: "Moonshot v1 Auto"},
|
|
{ModelKey: "moonshot-v1-8k-vision-preview", Description: "Moonshot v1 8K Vision"},
|
|
{ModelKey: "moonshot-v1-32k-vision-preview", Description: "Moonshot v1 32K Vision"},
|
|
{ModelKey: "moonshot-v1-128k-vision-preview", Description: "Moonshot v1 128K Vision"},
|
|
}
|
|
}
|
|
|
|
func zhipuGLMSeedModels() []catalogSeedModel {
|
|
return []catalogSeedModel{
|
|
{ModelKey: "glm-5.2", Description: "Z.AI GLM-5.2 flagship; 1M context; long-horizon agents"},
|
|
{ModelKey: "glm-5.1", Description: "Z.AI GLM-5.1; long-horizon tasks"},
|
|
{ModelKey: "glm-5-turbo", Description: "Z.AI GLM-5-Turbo; cost-efficient"},
|
|
{ModelKey: "glm-4.7", Description: "Z.AI GLM-4.7; general chat and coding"},
|
|
{ModelKey: "glm-4.7-flash", Description: "Z.AI GLM-4.7-Flash; free tier"},
|
|
{ModelKey: "glm-4.6", Description: "Z.AI GLM-4.6; 200K context"},
|
|
{ModelKey: "glm-5v-turbo", Description: "Z.AI GLM-5V-Turbo; vision"},
|
|
}
|
|
}
|