diff --git a/src/renderer/src/assets/images/providers/sophnet.svg b/src/renderer/src/assets/images/providers/sophnet.svg new file mode 100644 index 0000000000..aae1e03239 --- /dev/null +++ b/src/renderer/src/assets/images/providers/sophnet.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/renderer/src/config/models/default.ts b/src/renderer/src/config/models/default.ts index 5b242f297d..a56ea7f6cb 100644 --- a/src/renderer/src/config/models/default.ts +++ b/src/renderer/src/config/models/default.ts @@ -27,6 +27,7 @@ export const SYSTEM_MODELS: Record = ], cherryin: [], vertexai: [], + sophnet: [], '302ai': [ { id: 'deepseek-chat', diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 4c25dfff99..2b9fe2b21f 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -46,6 +46,7 @@ import Ph8ProviderLogo from '@renderer/assets/images/providers/ph8.png' import PPIOProviderLogo from '@renderer/assets/images/providers/ppio.png' import QiniuProviderLogo from '@renderer/assets/images/providers/qiniu.webp' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' +import SophnetProviderLogo from '@renderer/assets/images/providers/sophnet.svg' import StepProviderLogo from '@renderer/assets/images/providers/step.png' import TencentCloudProviderLogo from '@renderer/assets/images/providers/tencent-cloud-ti.png' import TogetherProviderLogo from '@renderer/assets/images/providers/together.png' @@ -246,6 +247,16 @@ export const SYSTEM_PROVIDERS_CONFIG: Record = isSystem: true, enabled: false }, + sophnet: { + id: 'sophnet', + name: 'SophNet', + type: 'openai', + apiKey: '', + apiHost: 'https://www.sophnet.com/api/open-apis/v1', + models: [], + isSystem: true, + enabled: false + }, ppio: { id: 'ppio', name: 'PPIO', @@ -729,7 +740,8 @@ export const PROVIDER_LOGO_MAP: AtLeast = { poe: 'poe', // use svg icon component aionly: AiOnlyProviderLogo, longcat: LongCatProviderLogo, - huggingface: HuggingfaceProviderLogo + huggingface: HuggingfaceProviderLogo, + sophnet: SophnetProviderLogo } as const export function getProviderLogo(providerId: string) { @@ -808,6 +820,17 @@ export const PROVIDER_URLS: Record = { models: 'https://ai.burncloud.com/pricing' } }, + sophnet: { + api: { + url: 'https://www.sophnet.com/api/open-apis/v1' + }, + websites: { + official: 'https://sophnet.com', + apiKey: 'https://sophnet.com/#/project/key', + docs: 'https://sophnet.com/docs/component/introduce.html', + models: 'https://sophnet.com/#/model/list' + } + }, ppio: { api: { url: 'https://api.ppinfra.com/v3/openai' diff --git a/src/renderer/src/i18n/label.ts b/src/renderer/src/i18n/label.ts index 3736437fc8..14ff45b331 100644 --- a/src/renderer/src/i18n/label.ts +++ b/src/renderer/src/i18n/label.ts @@ -85,7 +85,8 @@ const providerKeyMap = { poe: 'provider.poe', aionly: 'provider.aionly', longcat: 'provider.longcat', - huggingface: 'provider.huggingface' + huggingface: 'provider.huggingface', + sophnet: 'provider.sophnet' } as const /** diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index b3b89851d7..b84cb8bc53 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -2482,6 +2482,7 @@ "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 8f91651bac..a83813b017 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛云 AI 推理", "qwenlm": "QwenLM", "silicon": "硅基流动", + "sophnet": "SophNet", "stepfun": "阶跃星辰", "tencent-cloud-ti": "腾讯云 TI", "together": "Together", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index f89802ee23..76777fd644 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛雲 AI 推理", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "騰訊雲 TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 68e491ecb3..9891df74ca 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexity", - "ph8": "PH8 Großmodell-Plattform", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud", "qiniu": "Qiniu Cloud KI-Inferenz", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 35d61b1a1c..9a51b4b1df 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexity", - "ph8": "Πλατφόρμα Ανοιχτής Μεγάλης Μοντέλου PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Piao Yun", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Σιδηρική Παρουσία", + "sophnet": "SophNet", "stepfun": "Βήμα Ουράς", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index 75475fef3f..4382c402e1 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplejidad", - "ph8": "Plataforma Abierta de Grandes Modelos PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud Piao", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silicio Fluido", + "sophnet": "SophNet", "stepfun": "Función Salto", "tencent-cloud-ti": "Tencent Nube TI", "together": "Juntos", diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index 2076b9a841..4b35eab2fe 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexité", - "ph8": "Plateforme ouverte de grands modèles PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Cloud Piou", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silicium Fluide", + "sophnet": "SophNet", "stepfun": "Échelon Étoile", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Ensemble", diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index c8e6da0d04..be3fbf90a6 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -2482,6 +2482,7 @@ "qiniu": "七牛云 AI 推理", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index f75a164a9d..85c6400d0b 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -2476,12 +2476,13 @@ "openrouter": "OpenRouter", "ovms": "Intel OVMS", "perplexity": "Perplexidade", - "ph8": "Plataforma Aberta de Grandes Modelos PH8", + "ph8": "PH8", "poe": "Poe", "ppio": "PPIO Nuvem Piao", "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "Silício em Fluxo", + "sophnet": "SophNet", "stepfun": "Função de Passo Estelar", "tencent-cloud-ti": "Nuvem TI da Tencent", "together": "Juntos", diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index de63d96ff3..6f1797917d 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -2482,6 +2482,7 @@ "qiniu": "Qiniu AI", "qwenlm": "QwenLM", "silicon": "SiliconFlow", + "sophnet": "SophNet", "stepfun": "StepFun", "tencent-cloud-ti": "Tencent Cloud TI", "together": "Together", diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index efd5e415ff..a181e17598 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -67,7 +67,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 169, + version: 170, blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs', 'toolPermissions'], migrate }, diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index c6e3a9576c..a96f81e2d0 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -2783,6 +2783,16 @@ const migrateConfig = { logger.error('migrate 169 error', error as Error) return state } + }, + '170': (state: RootState) => { + try { + addProvider(state, 'sophnet') + state.llm.providers = moveProvider(state.llm.providers, 'sophnet', 17) + return state + } catch (error) { + logger.error('migrate 170 error', error as Error) + return state + } } } diff --git a/src/renderer/src/types/provider.ts b/src/renderer/src/types/provider.ts index e013d3d58a..657e445707 100644 --- a/src/renderer/src/types/provider.ts +++ b/src/renderer/src/types/provider.ts @@ -123,6 +123,7 @@ export const SystemProviderIds = { cephalon: 'cephalon', lanyun: 'lanyun', ph8: 'ph8', + sophnet: 'sophnet', openrouter: 'openrouter', ollama: 'ollama', ovms: 'ovms',