Skip to content

Commit 4268d8b

Browse files
authored
💄 style: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark (#2107)
* ✨ new: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark * 💄 add: model Stable Cascade * 💄 add: Jamba and OpenChat * ♻️ refactor: support more model Icons: dbrx, command-r, openchat, rwkv, Bert-vits2, Stable Diffusion, WizardLM, adobe firefly, skylark and so on * 💄 fix: remove unused Zhipu from import * 💄 fix: 01.AI not show Icons in other providers.
1 parent cb997a5 commit 4268d8b

File tree

2 files changed

+100
-17
lines changed

2 files changed

+100
-17
lines changed

src/components/ModelIcon/index.tsx

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
import {
2+
Adobe,
3+
Ai21,
24
Aws,
5+
Azure,
36
Baichuan,
7+
ByteDance,
48
ChatGLM,
59
Claude,
610
Cohere,
11+
Dbrx,
12+
FishAudio,
713
Gemini,
814
Gemma,
915
Hunyuan,
@@ -13,9 +19,12 @@ import {
1319
Mistral,
1420
Moonshot,
1521
OpenAI,
22+
OpenChat,
1623
OpenRouter,
1724
Perplexity,
25+
Rwkv,
1826
Spark,
27+
Stability,
1928
Tongyi,
2029
Wenxin,
2130
Yi,
@@ -33,33 +42,63 @@ const ModelIcon = memo<ModelProviderIconProps>(({ model: originModel, size = 12
3342
// lower case the origin model so to better match more model id case
3443
const model = originModel.toLowerCase();
3544

45+
// currently supported models, maybe not in its own provider
3646
if (model.includes('gpt-3')) return <OpenAI.Avatar size={size} type={'gpt3'} />;
3747
if (model.includes('gpt-4')) return <OpenAI.Avatar size={size} type={'gpt4'} />;
38-
if (model.startsWith('glm') || model.includes('chatglm')) return <ChatGLM.Avatar size={size} />;
48+
if (model.startsWith('glm') ||
49+
model.includes('chatglm'))
50+
return <ChatGLM.Avatar size={size} />;
3951
if (model.includes('claude')) return <Claude.Avatar size={size} />;
4052
if (model.includes('titan')) return <Aws.Avatar size={size} />;
4153
if (model.includes('llama')) return <Meta.Avatar size={size} />;
4254
if (model.includes('llava')) return <LLaVA.Avatar size={size} />;
4355
if (model.includes('gemini')) return <Gemini.Avatar size={size} />;
4456
if (model.includes('gemma')) return <Gemma.Avatar size={size} />;
57+
if (model.includes('moonshot')) return <Moonshot.Avatar size={size} />;
4558
if (model.includes('qwen')) return <Tongyi.Avatar background={Tongyi.colorPrimary} size={size} />;
4659
if (model.includes('minmax')) return <Minimax.Avatar size={size} />;
47-
if (model.includes('moonshot')) return <Moonshot.Avatar size={size} />;
48-
if (model.includes('baichuan'))
49-
return <Baichuan.Avatar background={Baichuan.colorPrimary} size={size} />;
50-
51-
if (model.includes('mistral') || model.includes('mixtral')) return <Mistral.Avatar size={size} />;
52-
53-
if (model.includes('pplx') || model.includes('sonar')) return <Perplexity.Avatar size={size} />;
54-
60+
if (model.includes('mistral') ||
61+
model.includes('mixtral'))
62+
return <Mistral.Avatar size={size} />;
63+
if (model.includes('pplx') ||
64+
model.includes('sonar'))
65+
return <Perplexity.Avatar size={size} />;
5566
if (model.includes('yi-')) return <Yi.Avatar size={size} />;
56-
if (model.includes('openrouter')) return <OpenRouter.Avatar size={size} />;
57-
if (model.includes('command')) return <Cohere.Color size={size} />;
67+
if (model.startsWith('openrouter')) return <OpenRouter.Avatar size={size} />; // only for Cinematika and Auto
68+
if (model.startsWith('openchat')) return <OpenChat.Avatar size={size} />;
69+
if (model.includes('command')) return <Cohere.Avatar size={size} />;
70+
if (model.includes('dbrx')) return <Dbrx.Avatar size={size} />;
5871

59-
if (model.includes('ernie')) return <Wenxin.Avatar size={size} />;
72+
// below: To be supported in providers, move up if supported
73+
if (model.includes('baichuan'))
74+
return <Baichuan.Avatar background={Baichuan.colorPrimary} size={size} />;
75+
if (model.includes('rwkv')) return <Rwkv.Avatar size={size} />;
76+
if (model.includes('ernie'))
77+
return <Wenxin.Avatar size={size} />;
6078
if (model.includes('spark')) return <Spark.Avatar size={size} />;
6179
if (model.includes('hunyuan')) return <Hunyuan.Avatar size={size} />;
62-
if (model.includes('abab')) return <Minimax.Avatar size={size} />;
80+
// ref https://github.com/fishaudio/Bert-VITS2/blob/master/train_ms.py#L702
81+
if (model.startsWith('d_') ||
82+
model.startsWith('g_') || model.startsWith('wd_'))
83+
return <FishAudio.Avatar size={size} />;
84+
if (model.includes('skylark')) return <ByteDance.Avatar size={size} />;
85+
86+
if (
87+
model.includes('stable-diffusion') ||
88+
model.includes('stable-video') ||
89+
model.includes('stable-cascade') ||
90+
model.includes('sdxl') ||
91+
model.includes('stablelm') ||
92+
model.startsWith('stable-') ||
93+
model.startsWith('sd3')
94+
)
95+
return <Stability.Avatar size={size} />;
96+
97+
if (model.includes('wizardlm')) return <Azure.Avatar size={size} />;
98+
if (model.includes('firefly')) return <Adobe.Avatar size={size} />;
99+
if (model.includes('jamba') ||
100+
model.includes('j2-'))
101+
return <Ai21.Avatar size={size} />;
63102
});
64103

65104
export default ModelIcon;

src/components/ModelTag/ModelIcon.tsx

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,32 @@
11
import {
2+
AdobeFirefly,
3+
Ai21,
24
Aws,
5+
Azure,
36
Baichuan,
7+
ByteDance,
48
ChatGLM,
59
Claude,
10+
Cohere,
11+
Dbrx,
12+
FishAudio,
613
Gemini,
714
Gemma,
15+
Hunyuan,
816
LLaVA,
917
Meta,
1018
Minimax,
1119
Mistral,
1220
Moonshot,
1321
OpenAI,
22+
OpenChat,
23+
OpenRouter,
1424
Perplexity,
25+
Rwkv,
26+
Spark,
27+
Stability,
1528
Tongyi,
29+
Wenxin,
1630
ZeroOne,
1731
} from '@lobehub/icons';
1832
import { memo } from 'react';
@@ -25,8 +39,9 @@ interface ModelIconProps {
2539
const ModelIcon = memo<ModelIconProps>(({ model, size = 12 }) => {
2640
if (!model) return;
2741

42+
// currently supported models, maybe not in its own provider
2843
if (model.startsWith('gpt')) return <OpenAI size={size} />;
29-
if (model.startsWith('glm')) return <ChatGLM size={size} />;
44+
if (model.startsWith('glm') || model.includes('chatglm')) return <ChatGLM size={size} />;
3045
if (model.includes('claude')) return <Claude size={size} />;
3146
if (model.includes('titan')) return <Aws size={size} />;
3247
if (model.includes('llama')) return <Meta size={size} />;
@@ -36,10 +51,39 @@ const ModelIcon = memo<ModelIconProps>(({ model, size = 12 }) => {
3651
if (model.includes('moonshot')) return <Moonshot size={size} />;
3752
if (model.includes('qwen')) return <Tongyi size={size} />;
3853
if (model.includes('minmax')) return <Minimax size={size} />;
39-
if (model.includes('baichuan')) return <Baichuan size={size} />;
4054
if (model.includes('mistral') || model.includes('mixtral')) return <Mistral size={size} />;
41-
if (model.includes('pplx')) return <Perplexity size={size} />;
42-
if (model.startsWith('yi-')) return <ZeroOne size={size} />;
55+
if (model.includes('pplx') || model.includes('sonar')) return <Perplexity size={size} />;
56+
if (model.includes('yi-')) return <ZeroOne size={size} />;
57+
if (model.startsWith('openrouter')) return <OpenRouter size={size} />; // only for Cinematika and Auto
58+
if (model.startsWith('openchat')) return <OpenChat size={size} />;
59+
if (model.includes('command')) return <Cohere size={size} />;
60+
if (model.includes('dbrx')) return <Dbrx size={size} />;
61+
62+
// below: To be supported in providers, move up if supported
63+
if (model.includes('baichuan')) return <Baichuan size={size} />;
64+
if (model.includes('rwkv')) return <Rwkv size={size} />;
65+
if (model.includes('ernie')) return <Wenxin size={size} />;
66+
if (model.includes('spark')) return <Spark size={size} />;
67+
if (model.includes('hunyuan')) return <Hunyuan size={size} />;
68+
// ref https://github.com/fishaudio/Bert-VITS2/blob/master/train_ms.py#L702
69+
if (model.startsWith('d_') || model.startsWith('g_') || model.startsWith('wd_'))
70+
return <FishAudio size={size} />;
71+
if (model.includes('skylark')) return <ByteDance size={size} />;
72+
73+
if (
74+
model.includes('stable-diffusion') ||
75+
model.includes('stable-video') ||
76+
model.includes('stable-cascade') ||
77+
model.includes('sdxl') ||
78+
model.includes('stablelm') ||
79+
model.startsWith('stable-') ||
80+
model.startsWith('sd3')
81+
)
82+
return <Stability size={size} />;
83+
84+
if (model.includes('wizardlm')) return <Azure size={size} />;
85+
if (model.includes('firefly')) return <AdobeFirefly size={size} />;
86+
if (model.includes('jamba') || model.includes('j2-')) return <Ai21 size={size} />;
4387
});
4488

4589
export default ModelIcon;

0 commit comments

Comments
 (0)