labels.go RawHistoryFolder
1package provider
2
3import "strings"
4
5// ProviderLabel returns the user-facing label for a provider id.
6func ProviderLabel(id string) string {
7 switch id {
8 case "anthropic":
9 return "Anthropic (Claude Pro/Max)"
10 case "openai":
11 return "OpenAI"
12 case LMStudioProviderID:
13 return "LM Studio"
14 case "openai-codex":
15 return "OpenAI Codex (ChatGPT Plus/Pro)"
16 case "openai-responses":
17 return "OpenAI Responses"
18 case "kimi":
19 return "Kimi Code"
20 case "deepseek":
21 return "DeepSeek"
22 case "google":
23 return "Google (Gemini API key)"
24 case "github-copilot":
25 return "GitHub Copilot"
26 case "moonshotai":
27 return "Moonshot AI"
28 case "moonshotai-cn":
29 return "Moonshot AI CN"
30 case "groq":
31 return "Groq"
32 case "xai":
33 return "xAI"
34 case "cerebras":
35 return "Cerebras"
36 case "together":
37 return "Together AI"
38 case "huggingface":
39 return "Hugging Face"
40 case "openrouter":
41 return "OpenRouter"
42 case "gondola":
43 return "Gondola"
44 case "yolo-auto":
45 return "Yolo-Auto"
46 case "mistral":
47 return "Mistral"
48 case "zai":
49 return "Z.AI"
50 case "xiaomi":
51 return "Xiaomi"
52 case "xiaomi-token-plan-ams":
53 return "Xiaomi Token Plan AMS"
54 case "xiaomi-token-plan-cn":
55 return "Xiaomi Token Plan CN"
56 case "xiaomi-token-plan-sgp":
57 return "Xiaomi Token Plan SGP"
58 case "minimax":
59 return "MiniMax"
60 case "minimax-cn":
61 return "MiniMax CN"
62 case "fireworks":
63 return "Fireworks"
64 case "vercel-ai-gateway":
65 return "Vercel AI Gateway"
66 case "opencode":
67 return "OpenCode"
68 case "opencode-go":
69 return "OpenCode Go"
70 case "amazon-bedrock":
71 return "Amazon Bedrock"
72 case "google-vertex":
73 return "Google Vertex AI"
74 case "azure-openai-responses":
75 return "Azure OpenAI"
76 case "cloudflare-workers-ai":
77 return "Cloudflare Workers AI"
78 case "cloudflare-ai-gateway":
79 return "Cloudflare AI Gateway"
80 case "ollama":
81 return "Ollama"
82 case LlamaCPPProviderID:
83 return "llama.cpp"
84 }
85 return titleProviderID(id)
86}
87
88func titleProviderID(id string) string {
89 parts := strings.FieldsFunc(id, func(r rune) bool { return r == '-' || r == '_' })
90 for i, p := range parts {
91 if p == "" {
92 continue
93 }
94 parts[i] = strings.ToUpper(p[:1]) + p[1:]
95 }
96 return strings.Join(parts, " ")
97}