mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-25 19:32:39 +08:00
- replace Qwen Coder preset with Bailian for Claude and OpenCode - add Bailian icon asset and metadata mapping - remove Bailian preset default model values - rename Claude preset Kimi k2 to Kimi
75 lines
2.2 KiB
TypeScript
75 lines
2.2 KiB
TypeScript
/**
|
|
* 根据供应商名称智能推断图标配置
|
|
*/
|
|
|
|
const iconMappings = {
|
|
// AI 服务商
|
|
claude: { icon: "claude", iconColor: "#D4915D" },
|
|
anthropic: { icon: "anthropic", iconColor: "#D4915D" },
|
|
deepseek: { icon: "deepseek", iconColor: "#1E88E5" },
|
|
zhipu: { icon: "zhipu", iconColor: "#0F62FE" },
|
|
glm: { icon: "zhipu", iconColor: "#0F62FE" },
|
|
qwen: { icon: "qwen", iconColor: "#FF6A00" },
|
|
bailian: { icon: "bailian", iconColor: "#624AFF" },
|
|
alibaba: { icon: "alibaba", iconColor: "#FF6A00" },
|
|
aliyun: { icon: "alibaba", iconColor: "#FF6A00" },
|
|
kimi: { icon: "kimi", iconColor: "#6366F1" },
|
|
moonshot: { icon: "moonshot", iconColor: "#6366F1" },
|
|
baidu: { icon: "baidu", iconColor: "#2932E1" },
|
|
tencent: { icon: "tencent", iconColor: "#00A4FF" },
|
|
hunyuan: { icon: "hunyuan", iconColor: "#00A4FF" },
|
|
minimax: { icon: "minimax", iconColor: "#FF6B6B" },
|
|
google: { icon: "google", iconColor: "#4285F4" },
|
|
meta: { icon: "meta", iconColor: "#0081FB" },
|
|
mistral: { icon: "mistral", iconColor: "#FF7000" },
|
|
cohere: { icon: "cohere", iconColor: "#39594D" },
|
|
perplexity: { icon: "perplexity", iconColor: "#20808D" },
|
|
huggingface: { icon: "huggingface", iconColor: "#FFD21E" },
|
|
|
|
// 云平台
|
|
aws: { icon: "aws", iconColor: "#FF9900" },
|
|
azure: { icon: "azure", iconColor: "#0078D4" },
|
|
huawei: { icon: "huawei", iconColor: "#FF0000" },
|
|
cloudflare: { icon: "cloudflare", iconColor: "#F38020" },
|
|
};
|
|
|
|
/**
|
|
* 根据预设名称推断图标
|
|
*/
|
|
export function inferIconForPreset(presetName: string): {
|
|
icon?: string;
|
|
iconColor?: string;
|
|
} {
|
|
const nameLower = presetName.toLowerCase();
|
|
|
|
// 精确匹配或模糊匹配
|
|
for (const [key, config] of Object.entries(iconMappings)) {
|
|
if (nameLower.includes(key)) {
|
|
return config;
|
|
}
|
|
}
|
|
|
|
return {};
|
|
}
|
|
|
|
/**
|
|
* 批量为预设添加图标配置
|
|
*/
|
|
export function addIconsToPresets<
|
|
T extends { name: string; icon?: string; iconColor?: string },
|
|
>(presets: T[]): T[] {
|
|
return presets.map((preset) => {
|
|
// 如果已经配置了图标,则保留原配置
|
|
if (preset.icon) {
|
|
return preset;
|
|
}
|
|
|
|
// 否则根据名称推断
|
|
const inferred = inferIconForPreset(preset.name);
|
|
return {
|
|
...preset,
|
|
...inferred,
|
|
};
|
|
});
|
|
}
|