From ae995182b288e6ed6f347f6149fdb4efd51d5a7c Mon Sep 17 00:00:00 2001 From: fullex <106392080+0xfullex@users.noreply.github.com> Date: Mon, 3 Mar 2025 17:44:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E2=80=9C=E8=85=BE?= =?UTF-8?q?=E8=AE=AF=E4=BA=91TI=E2=80=9D=E4=BE=9B=E5=BA=94=E5=95=86?= =?UTF-8?q?=E5=8F=8A=E5=85=B6=E6=94=AF=E6=8C=81=E7=9A=84deepseek=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=20(#2685)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/images/providers/tencent-cloud.png | Bin 0 -> 3497 bytes src/renderer/src/config/models.ts | 16 +++++++++++++++- src/renderer/src/config/providers.ts | 14 ++++++++++++++ src/renderer/src/i18n/locales/en-us.json | 3 ++- src/renderer/src/i18n/locales/ja-jp.json | 3 ++- src/renderer/src/i18n/locales/ru-ru.json | 3 ++- src/renderer/src/i18n/locales/zh-cn.json | 3 ++- src/renderer/src/i18n/locales/zh-tw.json | 3 ++- src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/llm.ts | 10 ++++++++++ src/renderer/src/store/migrate.ts | 13 +++++++++++++ 11 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 src/renderer/src/assets/images/providers/tencent-cloud.png diff --git a/src/renderer/src/assets/images/providers/tencent-cloud.png b/src/renderer/src/assets/images/providers/tencent-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..9af45261118482e2cab74de0d292c55705fa4340 GIT binary patch literal 3497 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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 723ac332..a0480596 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -1728,7 +1728,21 @@ export const SYSTEM_MODELS: Record = { group: 'Jina' } ], - xirang: [] + xirang: [], + 'tencent-cloud': [ + { + id: 'deepseek-r1', + provider: 'tencent-cloud', + name: 'DeepSeek R1', + group: 'DeepSeek' + }, + { + id: 'deepseek-v3', + provider: 'tencent-cloud', + name: 'DeepSeek V3', + group: 'DeepSeek' + } + ] } export const TEXT_TO_IMAGES_MODELS = [ diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 47d2fb93..42ee5a79 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -33,6 +33,7 @@ import PerplexityProviderLogo from '@renderer/assets/images/providers/perplexity import PPIOProviderLogo from '@renderer/assets/images/providers/ppio.png' import SiliconFlowProviderLogo from '@renderer/assets/images/providers/silicon.png' import StepProviderLogo from '@renderer/assets/images/providers/step.png' +import TencentCloudProviderLogo from '@renderer/assets/images/providers/tencent-cloud.png' import TogetherProviderLogo from '@renderer/assets/images/providers/together.png' import BytedanceProviderLogo from '@renderer/assets/images/providers/volcengine.png' import XirangProviderLogo from '@renderer/assets/images/providers/xirang.png' @@ -120,6 +121,8 @@ export function getProviderLogo(providerId: string) { return InfiniProviderLogo case 'o3': return O3ProviderLogo + case 'tencent-cloud': + return TencentCloudProviderLogo default: return undefined } @@ -558,5 +561,16 @@ export const PROVIDER_CONFIG = { docs: 'https://cloud.baidu.com/doc/index.html', models: 'https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Fm2vrveyu' } + }, + 'tentent-cloud': { + api: { + url: 'https://api.lkeap.cloud.tencent.com' + }, + websites: { + official: 'https://cloud.tencent.com/product/ti', + apiKey: 'https://console.cloud.tencent.com/lkeap/api', + docs: 'https://cloud.tencent.com/document/product/1772', + models: 'https://console.cloud.tencent.com/tione/v2/aimarket' + } } } diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index e2f8c662..0d741199 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -562,7 +562,8 @@ "yi": "Yi", "zhinao": "360AI", "zhipu": "ZHIPU AI", - "xirang": "State Cloud Xirang" + "xirang": "State Cloud Xirang", + "tencent-cloud": "Tencent Cloud TI" }, "settings": { "about": "About & Feedback", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 62465476..e37a1e56 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -562,7 +562,8 @@ "yi": "零一万物", "zhinao": "360智脳", "zhipu": "智譜AI", - "xirang": "天翼クラウド 息壤" + "xirang": "天翼クラウド 息壤", + "tencent-cloud": "Tencent Cloud TI" }, "settings": { "about": "について", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 1cd745ca..40d0b17f 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -562,7 +562,8 @@ "yi": "Yi", "zhinao": "360AI", "zhipu": "ZHIPU AI", - "xirang": "State Cloud Xirang" + "xirang": "State Cloud Xirang", + "tencent-cloud": "Tencent Cloud TI" }, "settings": { "about": "О программе и обратная связь", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 75d1b4dc..745ccb33 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -562,7 +562,8 @@ "yi": "零一万物", "zhinao": "360智脑", "zhipu": "智谱AI", - "xirang": "天翼云息壤" + "xirang": "天翼云息壤", + "tencent-cloud": "腾讯云TI" }, "settings": { "about": "关于我们", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index b64b02a4..cbfe1673 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -562,7 +562,8 @@ "yi": "零一萬物", "zhinao": "360智腦", "zhipu": "智譜AI", - "xirang": "天翼雲息壤" + "xirang": "天翼雲息壤", + "tencent-cloud": "騰訊雲TI" }, "settings": { "about": "關於與回饋", diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index 1814d680..e6cc1cf2 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -32,7 +32,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 75, + version: 76, blacklist: ['runtime'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 99db1feb..b399a7ae 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -416,6 +416,16 @@ const initialState: LlmState = { models: SYSTEM_MODELS.xirang, isSystem: true, enabled: false + }, + { + id: 'tencent-cloud', + name: 'Tencent Cloud TI', + type: 'openai', + apiKey: '', + apiHost: 'https://api.lkeap.cloud.tencent.com', + models: SYSTEM_MODELS['tencent-cloud'], + isSystem: true, + enabled: false } ], settings: { diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index 196bf8fa..c7321982 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -1202,6 +1202,19 @@ const migrateConfig = { zhihu && state.minapps.enabled.push(zhihu) } return state + }, + '76': (state: RootState) => { + state.llm.providers.push({ + id: 'tencent-cloud', + name: 'Tencent Cloud TI', + type: 'openai', + apiKey: '', + apiHost: 'https://api.lkeap.cloud.tencent.com', + models: SYSTEM_MODELS['tencent-cloud'], + isSystem: true, + enabled: false + }) + return state } }