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 00000000..cb6e03c3 Binary files /dev/null and b/src/renderer/src/assets/images/models/baichuan.png differ diff --git a/src/renderer/src/assets/images/providers/baichuan.png b/src/renderer/src/assets/images/providers/baichuan.png new file mode 100644 index 00000000..3a23c99b Binary files /dev/null and b/src/renderer/src/assets/images/providers/baichuan.png differ 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 + } + ] + } + } } })