diff --git a/src/renderer/src/assets/images/models/adept.png b/src/renderer/src/assets/images/models/adept.png new file mode 100644 index 0000000000..b71705db1a Binary files /dev/null and b/src/renderer/src/assets/images/models/adept.png differ diff --git a/src/renderer/src/assets/images/models/adept_dark.png b/src/renderer/src/assets/images/models/adept_dark.png new file mode 100644 index 0000000000..fde9296fd5 Binary files /dev/null and b/src/renderer/src/assets/images/models/adept_dark.png differ diff --git a/src/renderer/src/assets/images/models/aisingapore.png b/src/renderer/src/assets/images/models/aisingapore.png new file mode 100644 index 0000000000..436d5ba24d Binary files /dev/null and b/src/renderer/src/assets/images/models/aisingapore.png differ diff --git a/src/renderer/src/assets/images/models/aisingapore_dark.png b/src/renderer/src/assets/images/models/aisingapore_dark.png new file mode 100644 index 0000000000..dea29db684 Binary files /dev/null and b/src/renderer/src/assets/images/models/aisingapore_dark.png differ diff --git a/src/renderer/src/assets/images/models/bigcode.png b/src/renderer/src/assets/images/models/bigcode.png new file mode 100644 index 0000000000..327e7c6381 Binary files /dev/null and b/src/renderer/src/assets/images/models/bigcode.png differ diff --git a/src/renderer/src/assets/images/models/bigcode_dark.png b/src/renderer/src/assets/images/models/bigcode_dark.png new file mode 100644 index 0000000000..f39a9e5326 Binary files /dev/null and b/src/renderer/src/assets/images/models/bigcode_dark.png differ diff --git a/src/renderer/src/assets/images/models/dianxin.png b/src/renderer/src/assets/images/models/dianxin.png new file mode 100644 index 0000000000..9dc9c7871f Binary files /dev/null and b/src/renderer/src/assets/images/models/dianxin.png differ diff --git a/src/renderer/src/assets/images/models/dianxin_dark.png b/src/renderer/src/assets/images/models/dianxin_dark.png new file mode 100644 index 0000000000..7a66675c2d Binary files /dev/null and b/src/renderer/src/assets/images/models/dianxin_dark.png differ diff --git a/src/renderer/src/assets/images/models/google.png b/src/renderer/src/assets/images/models/google.png new file mode 100644 index 0000000000..9613e23a17 Binary files /dev/null and b/src/renderer/src/assets/images/models/google.png differ diff --git a/src/renderer/src/assets/images/models/ibm.png b/src/renderer/src/assets/images/models/ibm.png new file mode 100644 index 0000000000..f5e78c70b4 Binary files /dev/null and b/src/renderer/src/assets/images/models/ibm.png differ diff --git a/src/renderer/src/assets/images/models/ibm_dark.png b/src/renderer/src/assets/images/models/ibm_dark.png new file mode 100644 index 0000000000..4e1a38296a Binary files /dev/null and b/src/renderer/src/assets/images/models/ibm_dark.png differ diff --git a/src/renderer/src/assets/images/models/mediatek.png b/src/renderer/src/assets/images/models/mediatek.png new file mode 100644 index 0000000000..816539150e Binary files /dev/null and b/src/renderer/src/assets/images/models/mediatek.png differ diff --git a/src/renderer/src/assets/images/models/mediatek_dark.png b/src/renderer/src/assets/images/models/mediatek_dark.png new file mode 100644 index 0000000000..c89122b567 Binary files /dev/null and b/src/renderer/src/assets/images/models/mediatek_dark.png differ diff --git a/src/renderer/src/assets/images/models/nvidia.png b/src/renderer/src/assets/images/models/nvidia.png new file mode 100644 index 0000000000..2df837a19e Binary files /dev/null and b/src/renderer/src/assets/images/models/nvidia.png differ diff --git a/src/renderer/src/assets/images/models/nvidia_dark.png b/src/renderer/src/assets/images/models/nvidia_dark.png new file mode 100644 index 0000000000..b3d5d35059 Binary files /dev/null and b/src/renderer/src/assets/images/models/nvidia_dark.png differ diff --git a/src/renderer/src/assets/images/models/rakutenai.png b/src/renderer/src/assets/images/models/rakutenai.png new file mode 100644 index 0000000000..67d6b4136c Binary files /dev/null and b/src/renderer/src/assets/images/models/rakutenai.png differ diff --git a/src/renderer/src/assets/images/models/rakutenai_dark.png b/src/renderer/src/assets/images/models/rakutenai_dark.png new file mode 100644 index 0000000000..3c5d8823e6 Binary files /dev/null and b/src/renderer/src/assets/images/models/rakutenai_dark.png differ diff --git a/src/renderer/src/assets/images/models/tele.png b/src/renderer/src/assets/images/models/tele.png new file mode 100644 index 0000000000..d5186f2a9d Binary files /dev/null and b/src/renderer/src/assets/images/models/tele.png differ diff --git a/src/renderer/src/assets/images/models/tele_dark.png b/src/renderer/src/assets/images/models/tele_dark.png new file mode 100644 index 0000000000..4e9637a019 Binary files /dev/null and b/src/renderer/src/assets/images/models/tele_dark.png differ diff --git a/src/renderer/src/assets/images/models/upstage.png b/src/renderer/src/assets/images/models/upstage.png new file mode 100644 index 0000000000..5508e40151 Binary files /dev/null and b/src/renderer/src/assets/images/models/upstage.png differ diff --git a/src/renderer/src/assets/images/models/upstage_dark.png b/src/renderer/src/assets/images/models/upstage_dark.png new file mode 100644 index 0000000000..50d210b6a4 Binary files /dev/null and b/src/renderer/src/assets/images/models/upstage_dark.png differ diff --git a/src/renderer/src/assets/images/providers/fireworks.png b/src/renderer/src/assets/images/providers/fireworks.png new file mode 100644 index 0000000000..abe0e40a58 Binary files /dev/null and b/src/renderer/src/assets/images/providers/fireworks.png differ diff --git a/src/renderer/src/assets/images/providers/nvidia.png b/src/renderer/src/assets/images/providers/nvidia.png new file mode 100644 index 0000000000..2df837a19e Binary files /dev/null and b/src/renderer/src/assets/images/providers/nvidia.png differ diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index d38bc54108..f60453454c 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -1,13 +1,17 @@ import Ai360ModelLogo from '@renderer/assets/images/models/360.png' import Ai360ModelLogoDark from '@renderer/assets/images/models/360_dark.png' +import AdeptModelLogo from '@renderer/assets/images/models/adept.png' +import AdeptModelLogoDark from '@renderer/assets/images/models/adept_dark.png' import Ai21ModelLogo from '@renderer/assets/images/models/ai21.png' import Ai21ModelLogoDark from '@renderer/assets/images/models/ai21_dark.png' import AimassModelLogo from '@renderer/assets/images/models/aimass.png' import AimassModelLogoDark from '@renderer/assets/images/models/aimass_dark.png' -import MinimaxModelLogo from '@renderer/assets/images/models/minimax.png' -import MinimaxModelLogoDark from '@renderer/assets/images/models/minimax_dark.png' +import AisingaporeModelLogo from '@renderer/assets/images/models/aisingapore.png' +import AisingaporeModelLogoDark from '@renderer/assets/images/models/aisingapore_dark.png' import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png' import BaichuanModelLogoDark from '@renderer/assets/images/models/baichuan_dark.png' +import BigcodeModelLogo from '@renderer/assets/images/models/bigcode.png' +import BigcodeModelLogoDark from '@renderer/assets/images/models/bigcode_dark.png' import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.png' import ChatGLMModelLogoDark from '@renderer/assets/images/models/chatglm_dark.png' import ChatGptModelLogo from '@renderer/assets/images/models/chatgpt.jpeg' @@ -24,6 +28,8 @@ import DalleModelLogoDark from '@renderer/assets/images/models/dalle_dark.png' import DbrxModelLogo from '@renderer/assets/images/models/dbrx.png' import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png' import DeepSeekModelLogoDark from '@renderer/assets/images/models/deepseek_dark.png' +import DianxinModelLogo from '@renderer/assets/images/models/dianxin.png' +import DianxinModelLogoDark from '@renderer/assets/images/models/dianxin_dark.png' import DoubaoModelLogo from '@renderer/assets/images/models/doubao.png' import DoubaoModelLogoDark from '@renderer/assets/images/models/doubao_dark.png' import EmbeddingModelLogo from '@renderer/assets/images/models/embedding.png' @@ -36,6 +42,8 @@ import GeminiModelLogo from '@renderer/assets/images/models/gemini.png' import GeminiModelLogoDark from '@renderer/assets/images/models/gemini_dark.png' import GemmaModelLogo from '@renderer/assets/images/models/gemma.png' import GemmaModelLogoDark from '@renderer/assets/images/models/gemma_dark.png' +import GoogleModelLogo from '@renderer/assets/images/models/google.png' +import GoogleModelLogoDark from '@renderer/assets/images/models/google.png' import GorkModelLogo from '@renderer/assets/images/models/gork.png' import GorkModelLogoDark from '@renderer/assets/images/models/gork_dark.png' import ChatGPT35ModelLogo from '@renderer/assets/images/models/gpt_3.5.png' @@ -51,6 +59,8 @@ import HailuoModelLogo from '@renderer/assets/images/models/hailuo.png' import HailuoModelLogoDark from '@renderer/assets/images/models/hailuo_dark.png' import HunyuanModelLogo from '@renderer/assets/images/models/hunyuan.png' import HunyuanModelLogoDark from '@renderer/assets/images/models/hunyuan_dark.png' +import IbmModelLogo from '@renderer/assets/images/models/ibm.png' +import IbmModelLogoDark from '@renderer/assets/images/models/ibm_dark.png' import InternlmModelLogo from '@renderer/assets/images/models/internlm.png' import InternlmModelLogoDark from '@renderer/assets/images/models/internlm_dark.png' import KeLingModelLogo from '@renderer/assets/images/models/keling.png' @@ -63,22 +73,30 @@ import LumaModelLogo from '@renderer/assets/images/models/luma.png' import LumaModelLogoDark from '@renderer/assets/images/models/luma_dark.png' import MagicModelLogo from '@renderer/assets/images/models/magic.png' import MagicModelLogoDark from '@renderer/assets/images/models/magic_dark.png' +import MediatekModelLogo from '@renderer/assets/images/models/mediatek.png' +import MediatekModelLogoDark from '@renderer/assets/images/models/mediatek_dark.png' import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png' import MicrosoftModelLogoDark from '@renderer/assets/images/models/microsoft_dark.png' import MidjourneyModelLogo from '@renderer/assets/images/models/midjourney.png' import MidjourneyModelLogoDark from '@renderer/assets/images/models/midjourney_dark.png' import MinicpmModelLogo from '@renderer/assets/images/models/minicpm.webp' import MinicpmModelLogoDark from '@renderer/assets/images/models/minicpm.webp' +import MinimaxModelLogo from '@renderer/assets/images/models/minimax.png' +import MinimaxModelLogoDark from '@renderer/assets/images/models/minimax_dark.png' import MistralModelLogo from '@renderer/assets/images/models/mixtral.png' import MistralModelLogoDark from '@renderer/assets/images/models/mixtral_dark.png' import MoonshotModelLogo from '@renderer/assets/images/models/moonshot.png' import MoonshotModelLogoDark from '@renderer/assets/images/models/moonshot_dark.png' import NousResearchModelLogo from '@renderer/assets/images/models/nousresearch.png' import NousResearchModelLogoDark from '@renderer/assets/images/models/nousresearch.png' +import NvidiaModelLogo from '@renderer/assets/images/models/nvidia.png' +import NvidiaModelLogoDark from '@renderer/assets/images/models/nvidia_dark.png' import PalmModelLogo from '@renderer/assets/images/models/palm.png' import PalmModelLogoDark from '@renderer/assets/images/models/palm_dark.png' import QwenModelLogo from '@renderer/assets/images/models/qwen.png' import QwenModelLogoDark from '@renderer/assets/images/models/qwen_dark.png' +import RakutenaiModelLogo from '@renderer/assets/images/models/rakutenai.png' +import RakutenaiModelLogoDark from '@renderer/assets/images/models/rakutenai_dark.png' import SparkDeskModelLogo from '@renderer/assets/images/models/sparkdesk.png' import SparkDeskModelLogoDark from '@renderer/assets/images/models/sparkdesk_dark.png' import StabilityModelLogo from '@renderer/assets/images/models/stability.png' @@ -87,6 +105,10 @@ import StepModelLogo from '@renderer/assets/images/models/step.png' import StepModelLogoDark from '@renderer/assets/images/models/step_dark.png' import SunoModelLogo from '@renderer/assets/images/models/suno.png' import SunoModelLogoDark from '@renderer/assets/images/models/suno_dark.png' +import TeleModelLogo from '@renderer/assets/images/models/tele.png' +import TeleModelLogoDark from '@renderer/assets/images/models/tele_dark.png' +import UpstageModelLogo from '@renderer/assets/images/models/upstage.png' +import UpstageModelLogoDark from '@renderer/assets/images/models/upstage_dark.png' import ViduModelLogo from '@renderer/assets/images/models/vidu.png' import ViduModelLogoDark from '@renderer/assets/images/models/vidu_dark.png' import WenxinModelLogo from '@renderer/assets/images/models/wenxin.png' @@ -183,6 +205,7 @@ export function getModelLogo(modelId: string) { sparkdesk: isLight ? SparkDeskModelLogo : SparkDeskModelLogoDark, generalv: isLight ? SparkDeskModelLogo : SparkDeskModelLogoDark, wizardlm: isLight ? MicrosoftModelLogo : MicrosoftModelLogoDark, + microsoft: isLight ? MicrosoftModelLogo : MicrosoftModelLogoDark, hermes: isLight ? NousResearchModelLogo : NousResearchModelLogoDark, gryphe: isLight ? GrypheModelLogo : GrypheModelLogoDark, suno: isLight ? SunoModelLogo : SunoModelLogoDark, @@ -192,7 +215,18 @@ export function getModelLogo(modelId: string) { 'vidu-': isLight ? ViduModelLogo : ViduModelLogoDark, ai21: isLight ? Ai21ModelLogo : Ai21ModelLogoDark, 'jamba-': isLight ? Ai21ModelLogo : Ai21ModelLogoDark, - mythomax: isLight ? GrypheModelLogo : GrypheModelLogoDark + mythomax: isLight ? GrypheModelLogo : GrypheModelLogoDark, + nvidia: isLight ? NvidiaModelLogo : NvidiaModelLogoDark, + dianxin: isLight ? DianxinModelLogo : DianxinModelLogoDark, + tele: isLight ? TeleModelLogo : TeleModelLogoDark, + adept: isLight ? AdeptModelLogo : AdeptModelLogoDark, + aisingapore: isLight ? AisingaporeModelLogo : AisingaporeModelLogoDark, + bigcode: isLight ? BigcodeModelLogo : BigcodeModelLogoDark, + mediatek: isLight ? MediatekModelLogo : MediatekModelLogoDark, + upstage: isLight ? UpstageModelLogo : UpstageModelLogoDark, + rakutenai: isLight ? RakutenaiModelLogo : RakutenaiModelLogoDark, + ibm: isLight ? IbmModelLogo : IbmModelLogoDark, + 'google/': isLight ? GoogleModelLogo : GoogleModelLogoDark } for (const key in logoMap) { @@ -207,6 +241,30 @@ export function getModelLogo(modelId: string) { export const SYSTEM_MODELS: Record = { ollama: [], silicon: [ + { + id: 'Qwen/Qwen2.5-72B-Instruct', + provider: 'silicon', + name: 'Qwen2.5-72B-Instruct', + group: 'Qwen2.5' + }, + { + id: 'Qwen/Qwen2.5-32B-Instruct', + provider: 'silicon', + name: 'Qwen2.5-32B-Instruct', + group: 'Qwen2.5' + }, + { + id: 'Qwen/Qwen2.5-14B-Instruct', + provider: 'silicon', + name: 'Qwen2.5-14B-Instruct', + group: 'Qwen2.5' + }, + { + id: 'Qwen/Qwen2.5-7B-Instruct', + provider: 'silicon', + name: 'Qwen2.5-7B-Instruct', + group: 'Qwen2.5' + }, { id: 'Qwen/Qwen2-7B-Instruct', provider: 'silicon', @@ -262,6 +320,24 @@ export const SYSTEM_MODELS: Record = { provider: 'openai', name: ' GPT-4', group: 'GPT 4' + }, + { + id: 'gpt-3.5-turbo', + provider: 'openai', + name: ' GPT-3.5-turbo', + group: 'GPT 3.5' + }, + { + id: 'o1-mini', + provider: 'openai', + name: ' o1-mini', + group: 'o1' + }, + { + id: 'o1-preview', + provider: 'openai', + name: ' o1-preview', + group: 'o1' } ], gemini: [ @@ -318,6 +394,32 @@ export const SYSTEM_MODELS: Record = { group: 'DeepSeek Coder' } ], + together: [ + { + id: 'meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo', + provider: 'together', + name: 'Llama-3.2-11B-Vision', + group: 'Llama-3.2' + }, + { + id: 'meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo', + provider: 'together', + name: 'Llama-3.2-90B-Vision', + group: 'Llama-3.2' + }, + { + id: 'google/gemma-2-27b-it', + provider: 'together', + name: 'gemma-2-27b-it', + group: 'Gemma' + }, + { + id: 'google/gemma-2-9b-it', + provider: 'together', + name: 'gemma-2-9b-it', + group: 'Gemma' + } + ], ocoolai: [ { id: 'gpt-4o', @@ -396,6 +498,48 @@ export const SYSTEM_MODELS: Record = { provider: 'ocoolai', name: 'claude-3-haiku-20240307', group: 'Anthropic' + }, + { + id: 'gemini-pro', + provider: 'ocoolai', + name: 'gemini-pro', + group: 'Gemini' + }, + { + id: 'gemini-1.5-pro', + provider: 'ocoolai', + name: 'gemini-1.5-pro', + group: 'Gemini' + }, + { + id: 'meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo', + provider: 'ocoolai', + name: 'Llama-3.2-90B-Vision-Instruct-Turbo', + group: 'Llama-3.2' + }, + { + id: 'meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo', + provider: 'ocoolai', + name: 'Llama-3.2-11B-Vision-Instruct-Turbo', + group: 'Llama-3.2' + }, + { + id: 'meta-llama/Llama-3.2-3B-Vision-Instruct-Turbo', + provider: 'ocoolai', + name: 'Llama-3.2-3B-Vision-Instruct-Turbo', + group: 'Llama-3.2' + }, + { + id: 'google/gemma-2-27b-it', + provider: 'ocoolai', + name: 'gemma-2-27b-it', + group: 'Gemma' + }, + { + id: 'google/gemma-2-9b-it', + provider: 'ocoolai', + name: 'gemma-2-9b-it', + group: 'Gemma' } ], github: [ @@ -609,6 +753,48 @@ export const SYSTEM_MODELS: Record = { group: 'Llama3' } ], + fireworks: [ + { + id: 'accounts/fireworks/models/mythomax-l2-13b', + provider: 'fireworks', + name: 'mythomax-l2-13b', + group: 'Gryphe' + }, + { + id: 'accounts/fireworks/models/llama-v3-70b-instruct', + provider: 'fireworks', + name: 'Llama-3-70B-Instruct', + group: 'Llama3' + } + ], + zhinao: [ + { + id: '360gpt-pro', + provider: 'zhinao', + name: '360gpt-pro', + group: '360Gpt' + }, + { + id: '360gpt-turbo', + provider: 'zhinao', + name: '360gpt-turbo', + group: '360Gpt' + } + ], + nvidia: [ + { + id: '01-ai/yi-large', + provider: 'nvidia', + name: 'yi-large', + group: 'Yi' + }, + { + id: 'meta/llama-3.1-405b-instruct', + provider: 'nvidia', + name: 'llama-3.1-405b-instruct', + group: 'llama-3.1' + } + ], openrouter: [ { id: 'google/gemma-2-9b-it:free', diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 50f6f63017..5b71cb4fff 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -1,21 +1,25 @@ +import ZhinaoProviderLogo from '@renderer/assets/images/models/360.png' import AiHubMixProviderLogo from '@renderer/assets/images/providers/aihubmix.jpg' import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.png' import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' import BytedanceProviderLogo from '@renderer/assets/images/providers/bytedance.png' import DashScopeProviderLogo from '@renderer/assets/images/providers/dashscope.png' import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png' +import FireworksProviderLogo from '@renderer/assets/images/providers/fireworks.png' import GithubProviderLogo from '@renderer/assets/images/providers/github.png' import GoogleProviderLogo from '@renderer/assets/images/providers/google.png' import GraphRagProviderLogo from '@renderer/assets/images/providers/graph-rag.png' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.png' +import NvidiaProviderLogo from '@renderer/assets/images/providers/nvidia.png' import OcoolAiProviderLogo from '@renderer/assets/images/providers/ocoolai.png' import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png' import OpenAiProviderLogo from '@renderer/assets/images/providers/openai.png' import OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' import StepProviderLogo from '@renderer/assets/images/providers/step.png' +import TogetherProviderLogo from '@renderer/assets/images/providers/together.png' import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' @@ -61,6 +65,15 @@ export function getProviderLogo(providerId: string) { return GithubProviderLogo case 'ocoolai': return OcoolAiProviderLogo + case 'together': + return TogetherProviderLogo + case 'fireworks': + return FireworksProviderLogo + case 'zhinao': + return ZhinaoProviderLogo + case 'nvidia': + return NvidiaProviderLogo + default: return undefined } @@ -122,6 +135,17 @@ export const PROVIDER_CONFIG = { models: 'https://docs.ooo.cool/guides/jiage/' } }, + together: { + api: { + url: 'https://api.tohgether.xyz' + }, + websites: { + official: 'https://www.together.ai/', + apiKey: 'https://api.together.ai/settings/api-keys', + docs: 'https://docs.together.ai/docs/introduction', + models: 'https://docs.together.ai/docs/chat-models' + } + }, github: { api: { url: 'https://models.inference.ai.azure.com/' @@ -279,5 +303,38 @@ export const PROVIDER_CONFIG = { docs: 'https://doc.aihubmix.com/', models: 'https://aihubmix.com/models' } + }, + fireworks: { + api: { + url: 'https://api.fireworks.ai/inference' + }, + websites: { + official: 'https://fireworks.ai/', + apiKey: 'https://fireworks.ai/account/api-keys', + docs: 'https://docs.fireworks.ai/getting-started/introduction', + models: 'https://fireworks.ai/dashboard/models' + } + }, + zhinao: { + api: { + url: 'https://api.360.cn' + }, + websites: { + official: 'https://ai.360.com/', + apiKey: 'https://ai.360.com/platform/keys', + docs: 'https://ai.360.com/platform/docs/overview', + models: 'https://ai.360.com/platform/limit' + } + }, + navida: { + api: { + url: 'https://integrate.api.nvidia.com' + }, + websites: { + official: 'https://ai.360.com/', + apiKey: 'https://build.nvidia.com/meta/llama-3_1-405b-instruct', + docs: 'https://docs.api.nvidia.com/nim/reference/llm-apis', + models: 'https://build.nvidia.com/nim' + } } } diff --git a/src/renderer/src/i18n/en-us.json b/src/renderer/src/i18n/en-us.json index 59859da651..69c00f8880 100644 --- a/src/renderer/src/i18n/en-us.json +++ b/src/renderer/src/i18n/en-us.json @@ -142,6 +142,10 @@ "tag.user": "Mine" }, "provider": { + "nvidia": "Nvidia", + "zhinao": "360AI", + "fireworks": "Fireworks", + "together": "Together", "openai": "OpenAI", "gemini": "Gemini", "deepseek": "DeepSeek", diff --git a/src/renderer/src/i18n/zh-cn.json b/src/renderer/src/i18n/zh-cn.json index 94eecb69c4..85ef60cf74 100644 --- a/src/renderer/src/i18n/zh-cn.json +++ b/src/renderer/src/i18n/zh-cn.json @@ -142,6 +142,10 @@ "tag.user": "我的" }, "provider": { + "nvidia": "英伟达", + "zhinao": "360智脑", + "fireworks": "Fireworks", + "together": "Together", "openai": "OpenAI", "gemini": "Gemini", "deepseek": "深度求索", diff --git a/src/renderer/src/i18n/zh-tw.json b/src/renderer/src/i18n/zh-tw.json index a361f79784..476920fe5b 100644 --- a/src/renderer/src/i18n/zh-tw.json +++ b/src/renderer/src/i18n/zh-tw.json @@ -142,6 +142,10 @@ "tag.user": "我的" }, "provider": { + "nvidia": "輝達", + "zhinao": "360智腦", + "fireworks": "Fireworks", + "together": "Together", "openai": "OpenAI", "gemini": "Gemini", "deepseek": "深度求索", diff --git a/src/renderer/src/pages/home/components/SelectModelDropdown.tsx b/src/renderer/src/pages/home/components/SelectModelDropdown.tsx index 95070b383c..3da63a74a8 100644 --- a/src/renderer/src/pages/home/components/SelectModelDropdown.tsx +++ b/src/renderer/src/pages/home/components/SelectModelDropdown.tsx @@ -18,8 +18,8 @@ const SelectModelDropdown: FC = ({ children, model, o const { t } = useTranslation() const { providers } = useProviders() - const items: MenuProps['items'] = providers - .filter((p) => p.models.length > 0) + const items: MenuProps['items'] = (providers || []) + .filter((p) => p.models && p.models.length > 0) .map((p) => ({ key: p.id, label: p.isSystem ? t(`provider.${p.id}`) : p.name, diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index 91d9158019..b93b0c7343 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -22,7 +22,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 27, + version: 28, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 5dd3d4a3a8..9a0a499449 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -82,7 +82,7 @@ const initialState: LlmState = { name: 'ocoolAI', apiKey: '', apiHost: 'https://one.ooo.cool', - models: [], + models: SYSTEM_MODELS.ocoolai, isSystem: true, enabled: false }, @@ -194,6 +194,42 @@ const initialState: LlmState = { isSystem: true, enabled: false }, + { + id: 'together', + name: 'Together', + apiKey: '', + apiHost: 'https://api.together.xyz', + models: SYSTEM_MODELS.together, + isSystem: true, + enabled: false + }, + { + id: 'fireworks', + name: 'Fireworks', + apiKey: '', + apiHost: 'https://api.fireworks.ai/inference', + models: SYSTEM_MODELS.fireworks, + isSystem: true, + enabled: false + }, + { + id: 'zhinao', + name: 'zhinao', + apiKey: '', + apiHost: 'https://api.360.cn', + models: SYSTEM_MODELS.zhinao, + isSystem: true, + enabled: false + }, + { + id: 'nvidia', + name: 'nvidia', + apiKey: '', + apiHost: 'https://integrate.api.nvidia.com', + models: SYSTEM_MODELS.nvidia, + isSystem: true, + enabled: false + }, { id: 'aihubmix', name: 'AiHubMix', diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index f87b76b179..2fd603c1aa 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -442,6 +442,86 @@ const migrateConfig = { renderInputMessageAsMarkdown: true } } + }, + '28': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'together', + name: 'Together', + apiKey: '', + apiHost: 'https://api.together.xyz', + models: [], + isSystem: true, + enabled: false + } + ] + } + } + }, + '29': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'fireworks', + name: 'Fireworks', + apiKey: '', + apiHost: 'https://api.fireworks.ai/inference', + models: [], + isSystem: true, + enabled: false + } + ] + } + } + }, + '30': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'zhinao', + name: 'zhinao', + apiKey: '', + apiHost: 'https://api.360.cn', + models: [], + isSystem: true, + enabled: false + } + ] + } + } + }, + '31': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'nvidia', + name: 'nvidia', + apiKey: '', + apiHost: 'https://integrate.api.nvidia.com', + models: [], + isSystem: true, + enabled: false + } + ] + } + } } }