diff --git a/src/renderer/src/assets/images/providers/memorylake.png b/src/renderer/src/assets/images/providers/memorylake.png new file mode 100644 index 000000000..f33d258f5 Binary files /dev/null and b/src/renderer/src/assets/images/providers/memorylake.png differ diff --git a/src/renderer/src/config/models/default.ts b/src/renderer/src/config/models/default.ts index 66368d35f..7721d035e 100644 --- a/src/renderer/src/config/models/default.ts +++ b/src/renderer/src/config/models/default.ts @@ -1791,5 +1791,22 @@ export const SYSTEM_MODELS: Record = provider: 'cerebras', group: 'qwen' } + ], + memorylake: [ + { id: 'gpt-5', name: 'GPT-5', provider: 'memorylake', group: 'GPT 5' }, + { id: 'gpt-5-mini', name: 'GPT-5 Mini', provider: 'memorylake', group: 'GPT 5' }, + { id: 'gpt-4o', name: 'GPT 4o', provider: 'memorylake', group: 'GPT 4o' }, + { id: 'gpt-4o-mini', name: 'GPT 4o Mini', provider: 'memorylake', group: 'GPT 4o' }, + { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', provider: 'memorylake', group: 'Gemini 2.5' }, + { id: 'gemini-2.5-pro', name: 'Gemini 2.5 Pro', provider: 'memorylake', group: 'Gemini 2.5' }, + { id: 'claude-haiku-4-5-20251001', name: 'Claude Haiku 4.5', provider: 'memorylake', group: 'Claude 4.5' }, + { id: 'claude-sonnet-4-5-20250929', name: 'Claude Sonnet 4.5', provider: 'memorylake', group: 'Claude 4.5' }, + { id: 'glm-4.5', name: 'GLM 4.5', provider: 'memorylake', group: 'GLM 4.5' }, + { id: 'glm-4.5-air', name: 'GLM 4.5 Air', provider: 'memorylake', group: 'GLM 4.5' }, + { id: 'grok-4', name: 'Grok 4', provider: 'memorylake', group: 'Grok' }, + { id: 'grok-4-fast-non-reasoning', name: 'Grok 4 Fast', provider: 'memorylake', group: 'Grok' }, + { id: 'qwen-flash', name: 'Qwen Flash', provider: 'memorylake', group: 'Qwen' }, + { id: 'qwen-max', name: 'Qwen Max', provider: 'memorylake', group: 'Qwen' }, + { id: 'qwen-plus', name: 'Qwen Plus', provider: 'memorylake', group: 'Qwen' } ] } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index bc32ef349..cc8c956e4 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -31,6 +31,7 @@ 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 LongCatProviderLogo from '@renderer/assets/images/providers/longcat.png' +import MemoryLakeProviderLogo from '@renderer/assets/images/providers/memorylake.png' import MinimaxProviderLogo from '@renderer/assets/images/providers/minimax.png' import MistralProviderLogo from '@renderer/assets/images/providers/mistral.png' import ModelScopeProviderLogo from '@renderer/assets/images/providers/modelscope.png' @@ -695,6 +696,16 @@ export const SYSTEM_PROVIDERS_CONFIG: Record = models: SYSTEM_MODELS.cerebras, isSystem: true, enabled: false + }, + memorylake: { + id: 'memorylake', + name: 'MemoryLake', + type: 'openai', + apiKey: '', + apiHost: 'https://memorylake.data.cloud', + models: SYSTEM_MODELS.memorylake, + isSystem: true, + enabled: false } } as const @@ -763,7 +774,8 @@ export const PROVIDER_LOGO_MAP: AtLeast = { huggingface: HuggingfaceProviderLogo, sophnet: SophnetProviderLogo, gateway: AIGatewayProviderLogo, - cerebras: CerebrasProviderLogo + cerebras: CerebrasProviderLogo, + memorylake: MemoryLakeProviderLogo } as const export function getProviderLogo(providerId: string) { @@ -1434,5 +1446,15 @@ export const PROVIDER_URLS: Record = { docs: 'https://inference-docs.cerebras.ai/introduction', models: 'https://inference-docs.cerebras.ai/models/overview' } + }, + memorylake: { + api: { + url: 'https://memorylake.data.cloud' + }, + websites: { + official: 'https://memorylake.ai', + apiKey: 'https://memorylake.data.cloud/panel/token', + docs: 'https://docs.memorylake.ai' + } } } diff --git a/src/renderer/src/i18n/label.ts b/src/renderer/src/i18n/label.ts index ce36282b2..c3f367987 100644 --- a/src/renderer/src/i18n/label.ts +++ b/src/renderer/src/i18n/label.ts @@ -88,7 +88,8 @@ const providerKeyMap = { huggingface: 'provider.huggingface', sophnet: 'provider.sophnet', gateway: 'provider.ai-gateway', - cerebras: 'provider.cerebras' + cerebras: 'provider.cerebras', + memorylake: 'provider.memorylake' } as const /** diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 08c282720..6cf73c361 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -2643,6 +2643,7 @@ "lanyun": "LANYUN", "lmstudio": "LM Studio", "longcat": "LongCat AI", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index fa73a4649..ef18f06b2 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -2643,6 +2643,7 @@ "lanyun": "蓝耘科技", "lmstudio": "LM Studio", "longcat": "龙猫", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope 魔搭", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index e8128f33a..01f60dd3f 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -2643,6 +2643,7 @@ "lanyun": "藍耘", "lmstudio": "LM Studio", "longcat": "龍貓", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope 魔搭", diff --git a/src/renderer/src/i18n/translate/de-de.json b/src/renderer/src/i18n/translate/de-de.json index 3d3243654..1d3468d24 100644 --- a/src/renderer/src/i18n/translate/de-de.json +++ b/src/renderer/src/i18n/translate/de-de.json @@ -2643,6 +2643,7 @@ "lanyun": "Lanyun Technologie", "lmstudio": "LM Studio", "longcat": "Meißner Riesenhamster", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope", diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 2f9ef72b2..07cbbf04e 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -2643,6 +2643,7 @@ "lanyun": "Λανιούν Τεχνολογία", "lmstudio": "LM Studio", "longcat": "Τσίρο", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope Magpie", diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index adebbfa31..070153f1d 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -2643,6 +2643,7 @@ "lanyun": "Tecnología Lanyun", "lmstudio": "Estudio LM", "longcat": "Totoro", + "memorylake": "MemoryLake", "minimax": "Minimax", "mistral": "Mistral", "modelscope": "ModelScope Módulo", diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index 7b24f5767..b05e249e8 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -2643,6 +2643,7 @@ "lanyun": "Technologie Lan Yun", "lmstudio": "Studio LM", "longcat": "Mon voisin Totoro", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope MoDa", diff --git a/src/renderer/src/i18n/translate/ja-jp.json b/src/renderer/src/i18n/translate/ja-jp.json index e3b9fc77e..fa9dc0a6e 100644 --- a/src/renderer/src/i18n/translate/ja-jp.json +++ b/src/renderer/src/i18n/translate/ja-jp.json @@ -2643,6 +2643,7 @@ "lanyun": "LANYUN", "lmstudio": "LM Studio", "longcat": "トトロ", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope", diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index 10b5a12e1..f219ee792 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -2643,6 +2643,7 @@ "lanyun": "Lanyun Tecnologia", "lmstudio": "Estúdio LM", "longcat": "Totoro", + "memorylake": "MemoryLake", "minimax": "Minimax", "mistral": "Mistral", "modelscope": "ModelScope MôDá", diff --git a/src/renderer/src/i18n/translate/ru-ru.json b/src/renderer/src/i18n/translate/ru-ru.json index 645fbaeeb..8d5e612d4 100644 --- a/src/renderer/src/i18n/translate/ru-ru.json +++ b/src/renderer/src/i18n/translate/ru-ru.json @@ -2643,6 +2643,7 @@ "lanyun": "LANYUN", "lmstudio": "LM Studio", "longcat": "Тоторо", + "memorylake": "MemoryLake", "minimax": "MiniMax", "mistral": "Mistral", "modelscope": "ModelScope", diff --git a/src/renderer/src/types/provider.ts b/src/renderer/src/types/provider.ts index 4e3e34760..037794e2b 100644 --- a/src/renderer/src/types/provider.ts +++ b/src/renderer/src/types/provider.ts @@ -189,7 +189,8 @@ export const SystemProviderIdSchema = z.enum([ 'huggingface', 'sophnet', 'gateway', - 'cerebras' + 'cerebras', + 'memorylake' ]) export type SystemProviderId = z.infer @@ -258,7 +259,8 @@ export const SystemProviderIds = { longcat: 'longcat', huggingface: 'huggingface', gateway: 'gateway', - cerebras: 'cerebras' + cerebras: 'cerebras', + memorylake: 'memorylake' } as const satisfies Record type SystemProviderIdTypeMap = typeof SystemProviderIds