Skip to content

Commit add9ca2

Browse files
authoredFeb 6, 2025··
Merge pull request #6144 from Eric-2369/add-more-llm-icons
feat: add more llm icons
2 parents 28cbe56 + 5225a6e commit add9ca2

17 files changed

+339
-10
lines changed
 

‎app/components/emoji.tsx

+55-10
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,21 @@ import EmojiPicker, {
66

77
import { ModelType } from "../store";
88

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";
1124

1225
export function getEmojiUrl(unified: string, style: EmojiStyle) {
1326
// Whoever owns this Content Delivery Network (CDN), I am using your CDN to serve emojis
@@ -33,17 +46,49 @@ export function AvatarPicker(props: {
3346
}
3447

3548
export function Avatar(props: { model?: ModelType; avatar?: string }) {
49+
let LlmIcon = BotIconDefault;
50+
3651
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+
3789
return (
3890
<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} />
4792
</div>
4893
);
4994
}

‎app/components/ui-lib.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import React, {
2323
useRef,
2424
} from "react";
2525
import { IconButton } from "./button";
26+
import { Avatar } from "./emoji";
2627
import clsx from "clsx";
2728

2829
export function Popover(props: {
@@ -522,6 +523,7 @@ export function Selector<T>(props: {
522523
key={i}
523524
title={item.title}
524525
subTitle={item.subTitle}
526+
icon={<Avatar model={item.value as string} />}
525527
onClick={(e) => {
526528
if (item.disable) {
527529
e.stopPropagation();

‎app/icons/llm-icons/chatglm.svg

+14
Loading

‎app/icons/llm-icons/claude.svg

+8
Loading

‎app/icons/llm-icons/deepseek.svg

+8
Loading

‎app/icons/llm-icons/default.svg

+27
Loading

‎app/icons/llm-icons/doubao.svg

+14
Loading

‎app/icons/llm-icons/gemini.svg

+15
Loading

‎app/icons/llm-icons/gemma.svg

+15
Loading

‎app/icons/llm-icons/grok.svg

+8
Loading

‎app/icons/llm-icons/hunyuan.svg

+17
Loading

‎app/icons/llm-icons/meta.svg

+93
Loading

‎app/icons/llm-icons/mistral.svg

+15
Loading

‎app/icons/llm-icons/moonshot.svg

+8
Loading

‎app/icons/llm-icons/openai.svg

+8
Loading

‎app/icons/llm-icons/qwen.svg

+14
Loading

‎app/icons/llm-icons/wenxin.svg

+18
Loading

0 commit comments

Comments
 (0)
Please sign in to comment.