From 784770fd887e2bd7e05ce707aaff502378bf5c50 Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Thu, 11 Jul 2024 15:24:10 +0800 Subject: [PATCH] feat: add moonshot provider --- .../src/assets/images/providers/moonshot.jpeg | Bin 0 -> 6700 bytes src/renderer/src/config/models.ts | 26 ++++++++++++++++++ src/renderer/src/services/provider.ts | 7 ++++- src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/llm.ts | 9 ++++++ src/renderer/src/store/migrate.ts | 20 ++++++++++++++ 6 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 src/renderer/src/assets/images/providers/moonshot.jpeg diff --git a/src/renderer/src/assets/images/providers/moonshot.jpeg b/src/renderer/src/assets/images/providers/moonshot.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c0d8127aff47c6dc9a5d46bc8d77610869fa0079 GIT binary patch literal 6700 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 = { defaultEnabled: false } ], + moonshot: [ + { + id: 'moonshot-v1-8k', + provider: 'moonshot', + name: 'Moonshot V1 8k', + group: 'Moonshot V1', + temperature: 0.7, + defaultEnabled: true + }, + { + id: 'moonshot-v1-32k', + provider: 'moonshot', + name: 'Moonshot V1 32k', + group: 'Moonshot V1', + temperature: 0.7, + defaultEnabled: true + }, + { + id: 'moonshot-v1-128k', + provider: 'moonshot', + name: 'Moonshot V1 128k', + group: 'Moonshot V1', + temperature: 0.7, + defaultEnabled: true + } + ], groq: [ { id: 'llama3-8b-8192', diff --git a/src/renderer/src/services/provider.ts b/src/renderer/src/services/provider.ts index f7340841..1a5d01d1 100644 --- a/src/renderer/src/services/provider.ts +++ b/src/renderer/src/services/provider.ts @@ -5,6 +5,7 @@ import YiProviderLogo from '@renderer/assets/images/providers/yi.svg' import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' import OllamaProviderLogo from '@renderer/assets/images/providers/ollama.png' +import MoonshotProviderLogo from '@renderer/assets/images/providers/moonshot.jpeg' import ChatGPTModelLogo from '@renderer/assets/images/models/chatgpt.jpeg' import ChatGLMModelLogo from '@renderer/assets/images/models/chatglm.jpeg' import DeepSeekModelLogo from '@renderer/assets/images/models/deepseek.png' @@ -13,6 +14,7 @@ import QwenModelLogo from '@renderer/assets/images/models/qwen.jpeg' import YiModelLogo from '@renderer/assets/images/models/yi.svg' import LlamaModelLogo from '@renderer/assets/images/models/llama.jpeg' import MixtralModelLogo from '@renderer/assets/images/models/mixtral.jpeg' +import MoonshotModelLogo from '@renderer/assets/images/providers/moonshot.jpeg' export function getProviderLogo(providerId: string) { switch (providerId) { @@ -30,6 +32,8 @@ export function getProviderLogo(providerId: string) { return ZhipuProviderLogo case 'ollama': return OllamaProviderLogo + case 'moonshot': + return MoonshotProviderLogo default: return undefined } @@ -44,7 +48,8 @@ export function getModelLogo(modelId: string) { gemma: GemmaModelLogo, 'yi-': YiModelLogo, llama: LlamaModelLogo, - mixtral: MixtralModelLogo + mixtral: MixtralModelLogo, + moonshot: MoonshotModelLogo } for (const key in logoMap) { diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index 6a29d767..155e3dc3 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -19,7 +19,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 4, + version: 5, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 813a064d..48c8cd6f 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -58,6 +58,15 @@ const initialState: LlmState = { isSystem: true, enabled: false }, + { + id: 'moonshot', + name: 'Moonshot AI', + apiKey: '', + apiHost: 'https://api.moonshot.cn', + models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled), + isSystem: true, + enabled: false + }, { id: 'groq', name: 'Groq', diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index be98a915..786eda1e 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -62,6 +62,26 @@ const migrate = createMigrate({ ] } } + }, + // @ts-ignore store type is unknown + '5': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'moonshot', + name: 'Moonshot', + apiKey: '', + apiHost: 'https://api.moonshot.cn', + isSystem: true, + models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled) + } + ] + } + } } })