@@ -6,8 +6,21 @@ import EmojiPicker, {
6
6
7
7
import { ModelType } from "../store" ;
8
8
9
- import BotIcon from "../icons/bot.svg" ;
10
- import BlackBotIcon from "../icons/black-bot.svg" ;
9
+ import BotIconDefault from "../icons/llm-icons/default.svg" ;
10
+ import BotIconOpenAI from "../icons/llm-icons/openai.svg" ;
11
+ import BotIconGemini from "../icons/llm-icons/gemini.svg" ;
12
+ import BotIconGemma from "../icons/llm-icons/gemma.svg" ;
13
+ import BotIconClaude from "../icons/llm-icons/claude.svg" ;
14
+ import BotIconMeta from "../icons/llm-icons/meta.svg" ;
15
+ import BotIconMistral from "../icons/llm-icons/mistral.svg" ;
16
+ import BotIconDeepseek from "../icons/llm-icons/deepseek.svg" ;
17
+ import BotIconMoonshot from "../icons/llm-icons/moonshot.svg" ;
18
+ import BotIconQwen from "../icons/llm-icons/qwen.svg" ;
19
+ import BotIconWenxin from "../icons/llm-icons/wenxin.svg" ;
20
+ import BotIconGrok from "../icons/llm-icons/grok.svg" ;
21
+ import BotIconHunyuan from "../icons/llm-icons/hunyuan.svg" ;
22
+ import BotIconDoubao from "../icons/llm-icons/doubao.svg" ;
23
+ import BotIconChatglm from "../icons/llm-icons/chatglm.svg" ;
11
24
12
25
export function getEmojiUrl ( unified : string , style : EmojiStyle ) {
13
26
// Whoever owns this Content Delivery Network (CDN), I am using your CDN to serve emojis
@@ -33,17 +46,49 @@ export function AvatarPicker(props: {
33
46
}
34
47
35
48
export function Avatar ( props : { model ?: ModelType ; avatar ?: string } ) {
49
+ let LlmIcon = BotIconDefault ;
50
+
36
51
if ( props . model ) {
52
+ const modelName = props . model . toLowerCase ( ) ;
53
+
54
+ if (
55
+ modelName . startsWith ( "gpt" ) ||
56
+ modelName . startsWith ( "chatgpt" ) ||
57
+ modelName . startsWith ( "o1" ) ||
58
+ modelName . startsWith ( "o3" )
59
+ ) {
60
+ LlmIcon = BotIconOpenAI ;
61
+ } else if ( modelName . startsWith ( "gemini" ) ) {
62
+ LlmIcon = BotIconGemini ;
63
+ } else if ( modelName . startsWith ( "gemma" ) ) {
64
+ LlmIcon = BotIconGemma ;
65
+ } else if ( modelName . startsWith ( "claude" ) ) {
66
+ LlmIcon = BotIconClaude ;
67
+ } else if ( modelName . startsWith ( "llama" ) ) {
68
+ LlmIcon = BotIconMeta ;
69
+ } else if ( modelName . startsWith ( "mixtral" ) ) {
70
+ LlmIcon = BotIconMistral ;
71
+ } else if ( modelName . startsWith ( "deepseek" ) ) {
72
+ LlmIcon = BotIconDeepseek ;
73
+ } else if ( modelName . startsWith ( "moonshot" ) ) {
74
+ LlmIcon = BotIconMoonshot ;
75
+ } else if ( modelName . startsWith ( "qwen" ) ) {
76
+ LlmIcon = BotIconQwen ;
77
+ } else if ( modelName . startsWith ( "ernie" ) ) {
78
+ LlmIcon = BotIconWenxin ;
79
+ } else if ( modelName . startsWith ( "grok" ) ) {
80
+ LlmIcon = BotIconGrok ;
81
+ } else if ( modelName . startsWith ( "hunyuan" ) ) {
82
+ LlmIcon = BotIconHunyuan ;
83
+ } else if ( modelName . startsWith ( "doubao" ) ) {
84
+ LlmIcon = BotIconDoubao ;
85
+ } else if ( modelName . startsWith ( "glm" ) ) {
86
+ LlmIcon = BotIconChatglm ;
87
+ }
88
+
37
89
return (
38
90
< div className = "no-dark" >
39
- { props . model ?. startsWith ( "gpt-4" ) ||
40
- props . model ?. startsWith ( "chatgpt-4o" ) ||
41
- props . model ?. startsWith ( "o1" ) ||
42
- props . model ?. startsWith ( "o3" ) ? (
43
- < BlackBotIcon className = "user-avatar" />
44
- ) : (
45
- < BotIcon className = "user-avatar" />
46
- ) }
91
+ < LlmIcon className = "user-avatar" width = { 30 } height = { 30 } />
47
92
</ div >
48
93
) ;
49
94
}
0 commit comments