From 8e7ad00ebca7988d4158436e7a65ad750c916a3f Mon Sep 17 00:00:00 2001 From: LANYUN Date: Mon, 16 Jun 2025 10:04:03 +0800 Subject: [PATCH] feat: Add new provider Lanyun Cloud MaaS (#7033) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add files via upload 添加蓝耘logo图片 * 添加lanyun api及站点信息 * fix:修改引号 --------- Co-authored-by: 亢奋猫 --- .../src/assets/images/providers/lanyun.png | Bin 0 -> 16745 bytes src/renderer/src/config/models.ts | 3 ++- src/renderer/src/config/providers.ts | 15 ++++++++++++++- 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/llm.ts | 10 ++++++++++ src/renderer/src/store/migrate.ts | 2 ++ 10 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 src/renderer/src/assets/images/providers/lanyun.png diff --git a/src/renderer/src/assets/images/providers/lanyun.png b/src/renderer/src/assets/images/providers/lanyun.png new file mode 100644 index 0000000000000000000000000000000000000000..30eb729136d0b07e6030961a9695ac0be8e1cfd4 GIT binary patch literal 16745 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 Aga7~l literal 0 HcmV?d00001 diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index 679511f9c9..50b5b368d8 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -2179,7 +2179,8 @@ export const SYSTEM_MODELS: Record = { name: 'DeepSeek-R1满血版', group: 'DeepSeek' } - ] + ], + lanyun: [] } export const TEXT_TO_IMAGES_MODELS = [ diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 629e6827fd..fceffa3be8 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -22,6 +22,7 @@ import GroqProviderLogo from '@renderer/assets/images/providers/groq.png' import HyperbolicProviderLogo from '@renderer/assets/images/providers/hyperbolic.png' import InfiniProviderLogo from '@renderer/assets/images/providers/infini.png' import JinaProviderLogo from '@renderer/assets/images/providers/jina.png' +import LanyunProviderLogo from '@renderer/assets/images/providers/lanyun.png' import LMStudioProviderLogo from '@renderer/assets/images/providers/lmstudio.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MistralProviderLogo from '@renderer/assets/images/providers/mistral.png' @@ -98,7 +99,8 @@ const PROVIDER_LOGO_MAP = { voyageai: VoyageAIProviderLogo, qiniu: QiniuProviderLogo, tokenflux: TokenFluxProviderLogo, - cephalon: CephalonProviderLogo + cephalon: CephalonProviderLogo, + lanyun: LanyunProviderLogo } as const export function getProviderLogo(providerId: string) { @@ -638,5 +640,16 @@ export const PROVIDER_CONFIG = { docs: 'https://cephalon.cloud/apitoken/1864244127731589124', models: 'https://cephalon.cloud/model' } + }, + lanyun: { + api: { + url: 'https://maas-api.lanyun.net' + }, + websites: { + official: 'https://lanyun.net', + apiKey: 'https://maas.lanyun.net/api/#/system/apiKey', + docs: 'https://archive.lanyun.net/maas/doc/', + models: 'https://maas.lanyun.net/api/#/model/modelSquare' + } } } diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 74d4e2428d..dffaa3769e 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -1019,7 +1019,8 @@ "voyageai": "Voyage AI", "qiniu": "Qiniu AI", "tokenflux": "TokenFlux", - "302ai": "302.AI" + "302ai": "302.AI", + "lanyun": "LANYUN" }, "restore": { "confirm": "Are you sure you want to restore data?", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 5e9b02e2f6..d155eea480 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -1019,7 +1019,8 @@ "qiniu": "七牛云 AI 推理", "tokenflux": "TokenFlux", "302ai": "302.AI", - "cephalon": "Cephalon" + "cephalon": "Cephalon", + "lanyun": "LANYUN" }, "restore": { "confirm": "データを復元しますか?", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 601f965f8a..444440f604 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -1019,7 +1019,8 @@ "voyageai": "Voyage AI", "qiniu": "Qiniu AI", "tokenflux": "TokenFlux", - "302ai": "302.AI" + "302ai": "302.AI", + "lanyun": "LANYUN" }, "restore": { "confirm": "Вы уверены, что хотите восстановить данные?", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index c141207bae..09ba5b4bdb 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -1019,7 +1019,8 @@ "voyageai": "Voyage AI", "qiniu": "七牛云 AI 推理", "tokenflux": "TokenFlux", - "302ai": "302.AI" + "302ai": "302.AI", + "lanyun": "蓝耘科技" }, "restore": { "confirm": "确定要恢复数据吗?", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index e439528328..bae3c5331c 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -1019,7 +1019,8 @@ "voyageai": "Voyage AI", "qiniu": "七牛雲 AI 推理", "tokenflux": "TokenFlux", - "302ai": "302.AI" + "302ai": "302.AI", + "lanyun": "藍耘" }, "restore": { "confirm": "確定要復原資料嗎?", diff --git a/src/renderer/src/store/llm.ts b/src/renderer/src/store/llm.ts index 1ca1dad6ae..8b3e5ed053 100644 --- a/src/renderer/src/store/llm.ts +++ b/src/renderer/src/store/llm.ts @@ -146,6 +146,16 @@ export const INITIAL_PROVIDERS: Provider[] = [ isSystem: true, enabled: false }, + { + id: 'lanyun', + name: 'LANYUN', + type: 'openai', + apiKey: '', + apiHost: 'https://maas-api.lanyun.net', + models: SYSTEM_MODELS.lanyun, + isSystem: true, + enabled: false + }, { id: 'openrouter', name: 'OpenRouter', diff --git a/src/renderer/src/store/migrate.ts b/src/renderer/src/store/migrate.ts index 33cd1856e5..3cc36c7d99 100644 --- a/src/renderer/src/store/migrate.ts +++ b/src/renderer/src/store/migrate.ts @@ -1563,8 +1563,10 @@ const migrateConfig = { try { addProvider(state, 'cephalon') addProvider(state, '302ai') + addProvider(state, 'lanyun') state.llm.providers = moveProvider(state.llm.providers, 'cephalon', 13) state.llm.providers = moveProvider(state.llm.providers, '302ai', 14) + state.llm.providers = moveProvider(state.llm.providers, 'lanyun', 15) return state } catch (error) { return state