From 810c44f7fce48ccd9e94502aaa3ae2ae7a4968fc Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Wed, 17 Jul 2024 12:44:01 +0800 Subject: [PATCH] feat(provider): add baichuan provider --- .../src/assets/images/models/baichuan.png | Bin 0 -> 3128 bytes .../src/assets/images/providers/baichuan.png | Bin 0 -> 2668 bytes src/renderer/src/config/models.ts | 23 ++++++++++++++++++ src/renderer/src/config/provider.ts | 7 ++++++ src/renderer/src/i18n/index.ts | 6 +++-- 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 | 21 ++++++++++++++++ 9 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 src/renderer/src/assets/images/models/baichuan.png create mode 100644 src/renderer/src/assets/images/providers/baichuan.png diff --git a/src/renderer/src/assets/images/models/baichuan.png b/src/renderer/src/assets/images/models/baichuan.png new file mode 100644 index 0000000000000000000000000000000000000000..cb6e03c357fcf394ff6f0dd8d611ab242a39a908 GIT binary patch literal 3128 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 ST=!f60000B+0cZ@-;by=X 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 literal 0 HcmV?d00001 diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index 66c259a6..958527ac 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -340,5 +340,28 @@ export const SYSTEM_MODELS: Record = { group: 'Gemma', defaultEnabled: false } + ], + baichuan: [ + { + id: 'Baichuan4', + provider: 'baichuan', + name: 'Baichuan4', + group: 'Baichuan4', + defaultEnabled: true + }, + { + id: 'Baichuan3-Turbo', + provider: 'baichuan', + name: 'Baichuan3 Turbo', + group: 'Baichuan3', + defaultEnabled: true + }, + { + id: 'Baichuan3-Turbo-128k', + provider: 'baichuan', + name: 'Baichuan3 Turbo 128k', + group: 'Baichuan3', + defaultEnabled: true + } ] } diff --git a/src/renderer/src/config/provider.ts b/src/renderer/src/config/provider.ts index 7e480247..6357ccf0 100644 --- a/src/renderer/src/config/provider.ts +++ b/src/renderer/src/config/provider.ts @@ -69,5 +69,12 @@ export const PROVIDER_CONFIG = { docs: 'https://github.com/ollama/ollama/tree/main/docs', models: 'https://ollama.com/library' } + }, + baichuan: { + websites: { + official: 'https://www.baichuan-ai.com/', + docs: 'https://platform.baichuan-ai.com/docs', + models: 'https://platform.baichuan-ai.com/price' + } } } diff --git a/src/renderer/src/i18n/index.ts b/src/renderer/src/i18n/index.ts index 0d09a031..9d0e5844 100644 --- a/src/renderer/src/i18n/index.ts +++ b/src/renderer/src/i18n/index.ts @@ -77,7 +77,8 @@ const resources = { yi: 'Yi', zhipu: 'ZHIPU AI', groq: 'Groq', - ollama: 'Ollama' + ollama: 'Ollama', + baichuan: 'Baichuan' }, settings: { title: 'Settings', @@ -191,7 +192,8 @@ const resources = { yi: '零一万物', zhipu: '智谱AI', groq: 'Groq', - ollama: 'Ollama' + ollama: 'Ollama', + baichuan: '百川' }, settings: { title: '设置', diff --git a/src/renderer/src/services/provider.ts b/src/renderer/src/services/provider.ts index 88ef6ff6..8f4c2642 100644 --- a/src/renderer/src/services/provider.ts +++ b/src/renderer/src/services/provider.ts @@ -7,6 +7,7 @@ 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 OpenRouterProviderLogo from '@renderer/assets/images/providers/openrouter.png' +import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' 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' @@ -17,6 +18,7 @@ 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' import MicrosoftModelLogo from '@renderer/assets/images/models/microsoft.png' +import BaichuanModelLogo from '@renderer/assets/images/models/baichuan.png' export function getProviderLogo(providerId: string) { switch (providerId) { @@ -38,6 +40,8 @@ export function getProviderLogo(providerId: string) { return MoonshotProviderLogo case 'openrouter': return OpenRouterProviderLogo + case 'baichuan': + return BaichuanProviderLogo default: return undefined } @@ -55,7 +59,8 @@ export function getModelLogo(modelId: string) { mixtral: MixtralModelLogo, mistral: MixtralModelLogo, moonshot: MoonshotModelLogo, - phi: MicrosoftModelLogo + phi: MicrosoftModelLogo, + baichuan: BaichuanModelLogo } for (const key in logoMap) { diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index de08b0da..5ee7b590 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: 9, + version: 10, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 9dabd5e4..657549f4 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -93,6 +93,15 @@ const initialState: LlmState = { models: [], isSystem: true, enabled: false + }, + { + id: 'baichuan', + name: 'BAICHUAN AI', + apiKey: '', + apiHost: 'https://api.baichuan-ai.com', + models: SYSTEM_MODELS.baichuan.filter((m) => m.defaultEnabled), + isSystem: true, + enabled: false } ] } diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index a04e3ead..95554133 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -156,6 +156,27 @@ const migrate = createMigrate({ }) } } + }, + // @ts-ignore store type is unknown + '10': (state: RootState) => { + return { + ...state, + llm: { + ...state.llm, + providers: [ + ...state.llm.providers, + { + id: 'baichuan', + name: 'BAICHUAN AI', + apiKey: '', + apiHost: 'https://api.baichuan-ai.com', + models: SYSTEM_MODELS.baichuan.filter((m) => m.defaultEnabled), + isSystem: true, + enabled: false + } + ] + } + } } })