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',