model.constants.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. import {
  2. OpenAI,
  3. Claude,
  4. Gemini,
  5. Moonshot,
  6. Zhipu,
  7. Qwen,
  8. DeepSeek,
  9. Minimax,
  10. Wenxin,
  11. Spark,
  12. Midjourney,
  13. Hunyuan,
  14. Cohere,
  15. Cloudflare,
  16. Ai360,
  17. Yi,
  18. Jina,
  19. Mistral,
  20. XAI,
  21. Ollama,
  22. Doubao,
  23. } from '@lobehub/icons';
  24. export const MODEL_CATEGORIES = (t) => ({
  25. all: {
  26. label: t('全部模型'),
  27. icon: null,
  28. filter: () => true
  29. },
  30. openai: {
  31. label: 'OpenAI',
  32. icon: <OpenAI />,
  33. filter: (model) => model.model_name.toLowerCase().includes('gpt') ||
  34. model.model_name.toLowerCase().includes('dall-e') ||
  35. model.model_name.toLowerCase().includes('whisper') ||
  36. model.model_name.toLowerCase().includes('tts') ||
  37. model.model_name.toLowerCase().includes('text-') ||
  38. model.model_name.toLowerCase().includes('babbage') ||
  39. model.model_name.toLowerCase().includes('davinci') ||
  40. model.model_name.toLowerCase().includes('curie') ||
  41. model.model_name.toLowerCase().includes('ada')
  42. },
  43. anthropic: {
  44. label: 'Anthropic',
  45. icon: <Claude.Color />,
  46. filter: (model) => model.model_name.toLowerCase().includes('claude')
  47. },
  48. gemini: {
  49. label: 'Gemini',
  50. icon: <Gemini.Color />,
  51. filter: (model) => model.model_name.toLowerCase().includes('gemini')
  52. },
  53. moonshot: {
  54. label: 'Moonshot',
  55. icon: <Moonshot />,
  56. filter: (model) => model.model_name.toLowerCase().includes('moonshot')
  57. },
  58. zhipu: {
  59. label: t('智谱'),
  60. icon: <Zhipu.Color />,
  61. filter: (model) => model.model_name.toLowerCase().includes('chatglm') ||
  62. model.model_name.toLowerCase().includes('glm-')
  63. },
  64. qwen: {
  65. label: t('通义千问'),
  66. icon: <Qwen.Color />,
  67. filter: (model) => model.model_name.toLowerCase().includes('qwen')
  68. },
  69. deepseek: {
  70. label: 'DeepSeek',
  71. icon: <DeepSeek.Color />,
  72. filter: (model) => model.model_name.toLowerCase().includes('deepseek')
  73. },
  74. minimax: {
  75. label: 'MiniMax',
  76. icon: <Minimax.Color />,
  77. filter: (model) => model.model_name.toLowerCase().includes('abab')
  78. },
  79. baidu: {
  80. label: t('文心一言'),
  81. icon: <Wenxin.Color />,
  82. filter: (model) => model.model_name.toLowerCase().includes('ernie')
  83. },
  84. xunfei: {
  85. label: t('讯飞星火'),
  86. icon: <Spark.Color />,
  87. filter: (model) => model.model_name.toLowerCase().includes('spark')
  88. },
  89. midjourney: {
  90. label: 'Midjourney',
  91. icon: <Midjourney />,
  92. filter: (model) => model.model_name.toLowerCase().includes('mj_')
  93. },
  94. tencent: {
  95. label: t('腾讯混元'),
  96. icon: <Hunyuan.Color />,
  97. filter: (model) => model.model_name.toLowerCase().includes('hunyuan')
  98. },
  99. cohere: {
  100. label: 'Cohere',
  101. icon: <Cohere.Color />,
  102. filter: (model) => model.model_name.toLowerCase().includes('command')
  103. },
  104. cloudflare: {
  105. label: 'Cloudflare',
  106. icon: <Cloudflare.Color />,
  107. filter: (model) => model.model_name.toLowerCase().includes('@cf/')
  108. },
  109. ai360: {
  110. label: t('360智脑'),
  111. icon: <Ai360.Color />,
  112. filter: (model) => model.model_name.toLowerCase().includes('360')
  113. },
  114. yi: {
  115. label: t('零一万物'),
  116. icon: <Yi.Color />,
  117. filter: (model) => model.model_name.toLowerCase().includes('yi')
  118. },
  119. jina: {
  120. label: 'Jina',
  121. icon: <Jina />,
  122. filter: (model) => model.model_name.toLowerCase().includes('jina')
  123. },
  124. mistral: {
  125. label: 'Mistral AI',
  126. icon: <Mistral.Color />,
  127. filter: (model) => model.model_name.toLowerCase().includes('mistral')
  128. },
  129. xai: {
  130. label: 'xAI',
  131. icon: <XAI />,
  132. filter: (model) => model.model_name.toLowerCase().includes('grok')
  133. },
  134. llama: {
  135. label: 'Llama',
  136. icon: <Ollama />,
  137. filter: (model) => model.model_name.toLowerCase().includes('llama')
  138. },
  139. doubao: {
  140. label: t('豆包'),
  141. icon: <Doubao.Color />,
  142. filter: (model) => model.model_name.toLowerCase().includes('doubao')
  143. }
  144. });