From e134cacbec7307cf9e5e1d5b83fb4833dfceb7cc Mon Sep 17 00:00:00 2001 From: George Zhao <38124587+CreatorZZY@users.noreply.github.com> Date: Fri, 9 May 2025 14:45:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ParateraAI=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=94=AF=E6=8C=81=20(#5792)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add Paratera mini app with logo and URL. * feat: add Paratera AI provider and associated model. * feat: add Paratera provider to migration configuration * fix: update Paratera entry in default mini apps configuration * feat: add additional Paratera models to system models configuration * feat: reintroduce Paratera provider in migration configuration * fix: update redux-persist version to 99 in store configuration --------- Co-authored-by: George Zhao --- .../src/assets/images/apps/paratera.ico | Bin 0 -> 1096 bytes src/renderer/src/config/minapps.ts | 7 +++ src/renderer/src/config/models.ts | 56 ++++++++++++++++++ src/renderer/src/config/providers.ts | 15 ++++- src/renderer/src/store/index.ts | 2 +- src/renderer/src/store/llm.ts | 10 ++++ src/renderer/src/store/migrate.ts | 9 +++ 7 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 src/renderer/src/assets/images/apps/paratera.ico diff --git a/src/renderer/src/assets/images/apps/paratera.ico b/src/renderer/src/assets/images/apps/paratera.ico new file mode 100644 index 0000000000000000000000000000000000000000..ff3958618c65a159b7a2bcb0837a1e34c0da3db8 GIT binary patch literal 1096 zcmV-O1h@N%P)7o_jA`B+!eb5X1n5Sj&ds7+yjVE6QNahO0CyOLLLT(#>qjT3~Zc2IaKu z2h=jLt+fm&Y4l51E)2oM6_T^a5+XqmxZEG_J?*{(N?iQ!@{c@!p7%Y^`99z0Jm2R$ z0$w!8+=x7(Oxrv{BzuG~;71cEk5ry!rJN;NP3IvYbNAh^3G)FE7C)Zr%eCF?ajq1` z+_!&pBU2D!lFtXD@-zyOTd65O(>_sT-gF4^-c^$x`c(%`0hnUodSpNm8YsE!@ZeG4 zn*pUTOArbiYP>)R6xJXE{SFTfZTPzc!b409I^FcyH6N8N@QU5Ms2~y}EOZaL`KqO7 zA^=eO`0YGki=k+LGk^CEak#02^aLyM5h2WvpTVlEIb?46oYsy(rUyw@FN&pPbt)By zPqSiC0^%xVRVX&U)4&Hu+OZ{saPv$v7rI@1|7+g_08k`F22-#s5sO)H@>~zE)t;r` z-Z+xuthn8Znuhb#Hgytd4dk<;EaD?VDXuy})sc4MW=+FOu5MnL6N;bOd+8p~2%Bag z+8Usz;B4oRZvg2D)7i5=1(P)5*1U8MJM%_j5MY!>&ivWKL%SL<8sR}(B<1TC@Gal{{VTNdGm|#4ItDaS#n!AA8yHJP5C!8ox3!e(-pQDHZ7k= za^WYmb=b*WFq`rx(=eMP>CaX3NOl5J3O(|<5y7lllECY=Eo^wJ5#^)PkH3UU5gTq{ zS!yJ&uD7vtYqd_@h!y7E!os8*xodkpe{>IVN74-TZ(7Xxe+I~SzHZDR1vzur`B*CR zH&)ZuG2pZ1_yka~A&q-dq6xMbY5S{pOzW6?Qz-p|E=oT>#ja0Vxgk)}Sau&rTRM1R z&ky=dAI_Iz?^CJdq(qalv6>#AmEo%lmC`pK+?;`wkpIeeqW~m|3-9Mse6X3_wQYcb z*jW}GKylSc%4%9i?~AuozbwwiBqfQ8m)>x+}ZsNa#po!jg9`g9k`F(E|F3?e8%Qnogonugz5xA*uJX8xCm zaR4$BtyDgn$)(G7*6uz=b9>+DmaJRDC|$FFKk&nc>0ZF9Q~zd!Y9W#044(jnhiLd9-Nw2E3YV_SM5wv;cyE^1kz#@dbAh& zUHZSlCIbe8Kq-YwQw({1T*I!%W;B+LDF&t(5F)QqQ}}ltoTv)*!9*X;gfZos#p;ib z3XEtc^x@Ql`G69WJe(?JH!IglF*=?jw`oEq`#T*YGhyDe)qM$d7UI!om O0000 = { name: 'Qwen2.5 72B Instruct', group: 'Qwen' } + ], + paratera: [ + { + id: 'GLM-Z1-Flash-P002', + provider: 'paratera', + name: 'GLM-Z1-Flash-P002', + group: 'GLM' + }, + { + id: 'GLM-Z1-AirX-P002', + provider: 'paratera', + name: 'GLM-Z1-AirX-P002', + group: 'GLM' + }, + { + id: 'DeepSeek-V3-250324-P001', + provider: 'paratera', + name: 'DeepSeek-V3-250324-P001', + group: 'DeepSeek' + }, + { + id: 'DeepSeek-R1', + provider: 'paratera', + name: 'DeepSeek-R1', + group: 'DeepSeek' + }, + { + id: 'QwQ-N011-32B', + provider: 'paratera', + name: 'QwQ-N011-32B', + group: 'Qwen' + }, + { + id: 'GLM-Embedding-2-P002', + provider: 'paratera', + name: 'GLM-Embedding-2-P002', + group: 'GLM' + }, + { + id: 'GLM-Embedding-3-P002', + provider: 'paratera', + name: 'GLM-Embedding-3-P002', + group: 'GLM' + }, + { + id: 'Doubao-Embedding-Text-P001', + provider: 'paratera', + name: 'Doubao-Embedding-Text-P001', + group: 'Doubao' + }, + { + id: 'Doubao-Embedding-Large-Text-P001', + provider: 'paratera', + name: 'Doubao-Embedding-Large-Text-P001', + group: 'Doubao' + } ] } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 81407a8ae2..48ca7c9cc7 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -42,6 +42,7 @@ import VoyageAIProviderLogo from '@renderer/assets/images/providers/voyageai.png import XirangProviderLogo from '@renderer/assets/images/providers/xirang.png' import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' +import ParateraLogo from '@renderer/assets/images/apps/paratera.ico' const PROVIDER_LOGO_MAP = { openai: OpenAiProviderLogo, @@ -88,7 +89,8 @@ const PROVIDER_LOGO_MAP = { gpustack: GPUStackProviderLogo, alayanew: AlayaNewProviderLogo, voyageai: VoyageAIProviderLogo, - qiniu: QiniuProviderLogo + qiniu: QiniuProviderLogo, + paratera: ParateraLogo } as const export function getProviderLogo(providerId: string) { @@ -583,5 +585,16 @@ export const PROVIDER_CONFIG = { docs: 'https://developer.qiniu.com/aitokenapi', models: 'https://developer.qiniu.com/aitokenapi/12883/model-list' } + }, + paratera: { + api: { + url: 'https://llmapi.paratera.com' + }, + websites: { + official: 'https://ai.paratera.com/', + apiKey: 'https://ai.paratera.com/#/lms/api', + docs: 'https://ai.paratera.com/document/llm/quickStart/useApi', + models: 'https://ai.paratera.com/#/lms/model' + } } } diff --git a/src/renderer/src/store/index.ts b/src/renderer/src/store/index.ts index e8f4c2ac32..df7af60f69 100644 --- a/src/renderer/src/store/index.ts +++ b/src/renderer/src/store/index.ts @@ -46,7 +46,7 @@ const persistedReducer = persistReducer( { key: 'cherry-studio', storage, - version: 98, + version: 99, blacklist: ['runtime', 'messages', 'messageBlocks'], migrate }, diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 27a68b342b..293a8db50f 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -476,6 +476,16 @@ export const INITIAL_PROVIDERS: Provider[] = [ models: SYSTEM_MODELS.voyageai, isSystem: true, enabled: false + }, + { + id: 'paratera', + name: 'Paratera AI', + type: 'openai-compatible', + apiKey: '', + apiHost: 'https://llmapi.paratera.com', + models: SYSTEM_MODELS.paratera, + isSystem: true, + enabled: false } ] diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index f09ce39536..69abd39eb9 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -1248,6 +1248,15 @@ const migrateConfig = { provider.type = 'openai-compatible' } }) + return state + } catch (error) { + return state + } + }, + '99': (state: RootState) => { + try { + addProvider(state, 'paratera') + return state } catch (error) { return state