feat: ParateraAI 添加支持 (#5792)

* 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 <georgezhao@SKJLAB>
This commit is contained in:
George Zhao 2025-05-09 14:45:29 +08:00 committed by GitHub
parent 85e3233a72
commit e134cacbec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 97 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,4 +1,5 @@
import n8nLogo from '@renderer/assets/images/apps/n8n.ico?url' import n8nLogo from '@renderer/assets/images/apps/n8n.ico?url'
import ParateraLogo from '@renderer/assets/images/apps/paratera.ico?url'
import ApplicationLogo from '@renderer/assets/images/apps/application.png?url' import ApplicationLogo from '@renderer/assets/images/apps/application.png?url'
import ThreeMinTopAppLogo from '@renderer/assets/images/apps/3mintop.png?url' import ThreeMinTopAppLogo from '@renderer/assets/images/apps/3mintop.png?url'
import AbacusLogo from '@renderer/assets/images/apps/abacus.webp?url' import AbacusLogo from '@renderer/assets/images/apps/abacus.webp?url'
@ -450,6 +451,12 @@ const ORIGIN_DEFAULT_MIN_APPS: MinAppType[] = [
padding: 10 padding: 10
} }
}, },
{
id: 'paratera',
name: 'ParateraAI',
logo: ParateraLogo,
url: 'https://ai.paratera.com/'
},
{ {
id: 'n8n', id: 'n8n',
name: 'n8n', name: 'n8n',

View File

@ -2074,6 +2074,62 @@ export const SYSTEM_MODELS: Record<string, Model[]> = {
name: 'Qwen2.5 72B Instruct', name: 'Qwen2.5 72B Instruct',
group: 'Qwen' 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'
}
] ]
} }

View File

@ -42,6 +42,7 @@ import VoyageAIProviderLogo from '@renderer/assets/images/providers/voyageai.png
import XirangProviderLogo from '@renderer/assets/images/providers/xirang.png' import XirangProviderLogo from '@renderer/assets/images/providers/xirang.png'
import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png' import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png'
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png' import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
import ParateraLogo from '@renderer/assets/images/apps/paratera.ico'
const PROVIDER_LOGO_MAP = { const PROVIDER_LOGO_MAP = {
openai: OpenAiProviderLogo, openai: OpenAiProviderLogo,
@ -88,7 +89,8 @@ const PROVIDER_LOGO_MAP = {
gpustack: GPUStackProviderLogo, gpustack: GPUStackProviderLogo,
alayanew: AlayaNewProviderLogo, alayanew: AlayaNewProviderLogo,
voyageai: VoyageAIProviderLogo, voyageai: VoyageAIProviderLogo,
qiniu: QiniuProviderLogo qiniu: QiniuProviderLogo,
paratera: ParateraLogo
} as const } as const
export function getProviderLogo(providerId: string) { export function getProviderLogo(providerId: string) {
@ -583,5 +585,16 @@ export const PROVIDER_CONFIG = {
docs: 'https://developer.qiniu.com/aitokenapi', docs: 'https://developer.qiniu.com/aitokenapi',
models: 'https://developer.qiniu.com/aitokenapi/12883/model-list' 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'
}
} }
} }

View File

@ -46,7 +46,7 @@ const persistedReducer = persistReducer(
{ {
key: 'cherry-studio', key: 'cherry-studio',
storage, storage,
version: 98, version: 99,
blacklist: ['runtime', 'messages', 'messageBlocks'], blacklist: ['runtime', 'messages', 'messageBlocks'],
migrate migrate
}, },

View File

@ -476,6 +476,16 @@ export const INITIAL_PROVIDERS: Provider[] = [
models: SYSTEM_MODELS.voyageai, models: SYSTEM_MODELS.voyageai,
isSystem: true, isSystem: true,
enabled: false enabled: false
},
{
id: 'paratera',
name: 'Paratera AI',
type: 'openai-compatible',
apiKey: '',
apiHost: 'https://llmapi.paratera.com',
models: SYSTEM_MODELS.paratera,
isSystem: true,
enabled: false
} }
] ]

View File

@ -1248,6 +1248,15 @@ const migrateConfig = {
provider.type = 'openai-compatible' provider.type = 'openai-compatible'
} }
}) })
return state
} catch (error) {
return state
}
},
'99': (state: RootState) => {
try {
addProvider(state, 'paratera')
return state return state
} catch (error) { } catch (error) {
return state return state