diff --git a/src/renderer/src/assets/images/providers/modelscope.png b/src/renderer/src/assets/images/providers/modelscope.png new file mode 100644 index 0000000000..897755ee81 Binary files /dev/null and b/src/renderer/src/assets/images/providers/modelscope.png differ diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index fdebee5ba0..fff6d1d0e5 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -142,6 +142,7 @@ const visionAllowedModels = [ 'glm-4v', 'qwen-vl', 'qwen2-vl', + 'qwen2.5-vl', 'internvl2', 'grok-vision-beta', 'pixtral', @@ -933,6 +934,38 @@ export const SYSTEM_MODELS: Record = { group: 'Baichuan3' } ], + modelscope: [ + { + id: 'Qwen/Qwen2.5-72B-Instruct', + name: 'Qwen/Qwen2.5-72B-Instruct', + provider: 'modelscope', + group: 'Qwen' + }, + { + id: 'Qwen/Qwen2.5-VL-72B-Instruct', + name: 'Qwen/Qwen2.5-VL-72B-Instruct', + provider: 'modelscope', + group: 'Qwen' + }, + { + id: 'Qwen/Qwen2.5-Coder-32B-Instruct', + name: 'Qwen/Qwen2.5-Coder-32B-Instruct', + provider: 'modelscope', + group: 'Qwen' + }, + { + id: 'deepseek-ai/DeepSeek-R1', + name: 'deepseek-ai/DeepSeek-R1', + provider: 'modelscope', + group: 'deepseek-ai' + }, + { + id: 'deepseek-ai/DeepSeek-V3', + name: 'deepseek-ai/DeepSeek-V3', + provider: 'modelscope', + group: 'deepseek-ai' + } + ], bailian: [ { id: 'qwen-vl-plus', name: 'qwen-vl-plus', provider: 'dashscope', group: 'qwen-vl', owned_by: 'system' }, { id: 'qwen-coder-plus', name: 'qwen-coder-plus', provider: 'dashscope', group: 'qwen-coder', owned_by: 'system' }, diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 28392e5247..9e45b72f80 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -6,6 +6,8 @@ import AnthropicProviderLogo from '@renderer/assets/images/providers/anthropic.p import BaichuanProviderLogo from '@renderer/assets/images/providers/baichuan.png' import BaiduCloudProviderLogo from '@renderer/assets/images/providers/baidu-cloud.svg' import BailianProviderLogo from '@renderer/assets/images/providers/bailian.png' +import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png' +import BytedanceProviderLogo from '@renderer/assets/images/providers/bytedance.png' import DeepSeekProviderLogo from '@renderer/assets/images/providers/deepseek.png' import DmxapiProviderLogo from '@renderer/assets/images/providers/DMXAPI.png' import FireworksProviderLogo from '@renderer/assets/images/providers/fireworks.png' @@ -63,6 +65,8 @@ export function getProviderLogo(providerId: string) { return BaichuanProviderLogo case 'dashscope': return BailianProviderLogo + case 'modelscope': + return ModelScopeProviderLogo case 'anthropic': return AnthropicProviderLogo case 'aihubmix': @@ -295,6 +299,17 @@ export const PROVIDER_CONFIG = { models: 'https://platform.baichuan-ai.com/price' } }, + modelscope: { + api: { + url: 'https://api-inference.modelscope.cn/v1/' + }, + websites: { + official: 'https://modelscope.cn', + apiKey: 'https://modelscope.cn/my/myaccesstoken', + docs: 'https://modelscope.cn/docs/model-service/API-Inference/intro', + models: 'https://modelscope.cn/models' + } + }, dashscope: { api: { url: 'https://dashscope.aliyuncs.com/compatible-mode/v1/' diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index bd07c9e437..c501f0cd4e 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -481,6 +481,7 @@ "baichuan": "Baichuan", "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", + "modelscope": "ModelScope", "deepseek": "DeepSeek", "doubao": "Volcengine", "fireworks": "Fireworks", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 355982878e..cdb84b2ef6 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -481,6 +481,7 @@ "baichuan": "百川", "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", + "modelscope": "ModelScope", "deepseek": "DeepSeek", "doubao": "Volcengine", "fireworks": "Fireworks", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 4d5f7e213e..e69f480292 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -481,6 +481,7 @@ "baichuan": "Baichuan", "baidu-cloud": "Baidu Cloud", "dashscope": "Alibaba Cloud", + "modelscope": "ModelScope", "deepseek": "DeepSeek", "doubao": "Volcengine", "fireworks": "Fireworks", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index eb93bbaae5..24123d0aa0 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -481,6 +481,7 @@ "baichuan": "百川", "baidu-cloud": "百度云千帆", "dashscope": "阿里云百炼", + "modelscope": "ModelScope 魔搭", "deepseek": "深度求索", "doubao": "火山引擎", "fireworks": "Fireworks", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index 7001096abf..4291d19502 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -481,6 +481,7 @@ "baichuan": "百川", "baidu-cloud": "百度云千帆", "dashscope": "阿里雲百鍊", + "modelscope": "ModelScope 魔搭", "deepseek": "深度求索", "doubao": "火山引擎", "fireworks": "Fireworks", diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 0fa6819553..d622ab1399 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -424,6 +424,16 @@ const getIntegratedInitialState = () => { models: [model], isSystem: true, enabled: true + }, + { + id: 'modelscope', + name: 'ModelScope', + type: 'openai', + apiKey: '', + apiHost: 'https://api-inference.modelscope.cn/v1/', + models: SYSTEM_MODELS.modelscope, + isSystem: true, + enabled: false } ], settings: {