avatar.tsx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { ModelType } from "../store";
  2. import BotIconDefault from "../icons/llm-icons/default.svg";
  3. import BotIconOpenAI from "../icons/llm-icons/openai.svg";
  4. import BotIconGemini from "../icons/llm-icons/gemini.svg";
  5. import BotIconGemma from "../icons/llm-icons/gemma.svg";
  6. import BotIconClaude from "../icons/llm-icons/claude.svg";
  7. import BotIconMeta from "../icons/llm-icons/meta.svg";
  8. import BotIconMistral from "../icons/llm-icons/mistral.svg";
  9. import BotIconDeepseek from "../icons/llm-icons/deepseek.svg";
  10. import BotIconMoonshot from "../icons/llm-icons/moonshot.svg";
  11. import BotIconQwen from "../icons/llm-icons/qwen.svg";
  12. import BotIconWenxin from "../icons/llm-icons/wenxin.svg";
  13. import BotIconGrok from "../icons/llm-icons/grok.svg";
  14. import BotIconHunyuan from "../icons/llm-icons/hunyuan.svg";
  15. import BotIconDoubao from "../icons/llm-icons/doubao.svg";
  16. import BotIconChatglm from "../icons/llm-icons/chatglm.svg";
  17. export function Avatar(props: { model?: ModelType; avatar?: string }) {
  18. let LlmIcon = BotIconDefault;
  19. if (props.model) {
  20. const modelName = props.model.toLowerCase();
  21. if (
  22. modelName.startsWith("gpt") ||
  23. modelName.startsWith("chatgpt") ||
  24. modelName.startsWith("dall-e") ||
  25. modelName.startsWith("dalle") ||
  26. modelName.startsWith("o1") ||
  27. modelName.startsWith("o3")
  28. ) {
  29. LlmIcon = BotIconOpenAI;
  30. } else if (modelName.startsWith("gemini")) {
  31. LlmIcon = BotIconGemini;
  32. } else if (modelName.startsWith("gemma")) {
  33. LlmIcon = BotIconGemma;
  34. } else if (modelName.startsWith("claude")) {
  35. LlmIcon = BotIconClaude;
  36. } else if (modelName.includes("llama")) {
  37. LlmIcon = BotIconMeta;
  38. } else if (modelName.startsWith("mixtral") || modelName.startsWith("codestral")) {
  39. LlmIcon = BotIconMistral;
  40. } else if (modelName.includes("deepseek")) {
  41. LlmIcon = BotIconDeepseek;
  42. } else if (modelName.startsWith("moonshot")) {
  43. LlmIcon = BotIconMoonshot;
  44. } else if (modelName.startsWith("qwen")) {
  45. LlmIcon = BotIconQwen;
  46. } else if (modelName.startsWith("ernie")) {
  47. LlmIcon = BotIconWenxin;
  48. } else if (modelName.startsWith("grok")) {
  49. LlmIcon = BotIconGrok;
  50. } else if (modelName.startsWith("hunyuan")) {
  51. LlmIcon = BotIconHunyuan;
  52. } else if (modelName.startsWith("doubao") || modelName.startsWith("ep-")) {
  53. LlmIcon = BotIconDoubao;
  54. } else if (
  55. modelName.includes("glm") ||
  56. modelName.startsWith("cogview-") ||
  57. modelName.startsWith("cogvideox-")
  58. ) {
  59. LlmIcon = BotIconChatglm;
  60. }
  61. return (
  62. <div className="no-dark">
  63. <LlmIcon className="user-avatar" width={30} height={30} />
  64. </div>
  65. );
  66. }
  67. // 使用固定的默认头像
  68. return (
  69. <div className="no-dark">
  70. <BotIconDefault className="user-avatar" width={30} height={30} />
  71. </div>
  72. );
  73. }