diff --git a/open-sse/config/providerModels.js b/open-sse/config/providerModels.js index 7f04b7d3..139c1270 100644 --- a/open-sse/config/providerModels.js +++ b/open-sse/config/providerModels.js @@ -444,6 +444,12 @@ export const PROVIDER_MODELS = { { id: "openai/gpt-oss-120b", name: "GPT OSS 120B" }, { id: "baidu/ERNIE-4.5-300B-A47B", name: "ERNIE 4.5 300B" }, ], + "xiaomi-mimo": [ + { id: "mimo-v2.5-pro", name: "MiMo V2.5 Pro" }, + { id: "mimo-v2.5", name: "MiMo V2.5" }, + { id: "mimo-v2-omni", name: "MiMo V2 Omni" }, + { id: "mimo-v2-flash", name: "MiMo V2 Flash" }, + ], hyperbolic: [ { id: "Qwen/QwQ-32B", name: "QwQ 32B" }, { id: "deepseek-ai/DeepSeek-R1", name: "DeepSeek R1" }, diff --git a/open-sse/config/providers.js b/open-sse/config/providers.js index dd0c53de..323291db 100644 --- a/open-sse/config/providers.js +++ b/open-sse/config/providers.js @@ -372,6 +372,10 @@ export const PROVIDERS = { baseUrl: "https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions", format: "openai" }, + "xiaomi-mimo": { + baseUrl: "https://api.xiaomimimo.com/v1/chat/completions", + format: "openai" + }, }; export const OLLAMA_LOCAL_DEFAULT_HOST = "http://localhost:11434"; diff --git a/open-sse/services/model.js b/open-sse/services/model.js index f4f0c54e..be1f6656 100644 --- a/open-sse/services/model.js +++ b/open-sse/services/model.js @@ -63,6 +63,8 @@ const ALIAS_TO_PROVIDER_ID = { "grok-web": "grok-web", pw: "perplexity-web", "perplexity-web": "perplexity-web", + mimo: "xiaomi-mimo", + "xiaomi-mimo": "xiaomi-mimo", }; /** diff --git a/public/providers/xiaomi-mimo.png b/public/providers/xiaomi-mimo.png new file mode 100644 index 00000000..1752aa9a Binary files /dev/null and b/public/providers/xiaomi-mimo.png differ diff --git a/src/app/api/providers/validate/route.js b/src/app/api/providers/validate/route.js index 1c283279..60e4aa68 100644 --- a/src/app/api/providers/validate/route.js +++ b/src/app/api/providers/validate/route.js @@ -361,6 +361,7 @@ export async function POST(request) { case "assemblyai": case "nanobanana": case "chutes": + case "xiaomi-mimo": case "nvidia": { const endpoints = { deepseek: "https://api.deepseek.com/models", @@ -380,7 +381,8 @@ export async function POST(request) { assemblyai: "https://api.assemblyai.com/v1/account", nanobanana: "https://api.nanobananaapi.ai/v1/models", chutes: "https://llm.chutes.ai/v1/models", - nvidia: "https://integrate.api.nvidia.com/v1/models" + nvidia: "https://integrate.api.nvidia.com/v1/models", + "xiaomi-mimo": "https://api.xiaomimimo.com/v1/models" }; const headers = {}; if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`; diff --git a/src/shared/constants/providers.js b/src/shared/constants/providers.js index ec03057d..81121909 100644 --- a/src/shared/constants/providers.js +++ b/src/shared/constants/providers.js @@ -60,6 +60,7 @@ export const APIKEY_PROVIDERS = { "minimax-cn": { id: "minimax-cn", alias: "minimax-cn", name: "Minimax (China)", icon: "memory", color: "#DC2626", textIcon: "MC", website: "https://www.minimaxi.com" }, alicode: { id: "alicode", alias: "alicode", name: "Alibaba", icon: "cloud", color: "#FF6A00", textIcon: "ALi" }, "alicode-intl": { id: "alicode-intl", alias: "alicode-intl", name: "Alibaba Intl", icon: "cloud", color: "#FF6A00", textIcon: "ALi" }, + "xiaomi-mimo": { id: "xiaomi-mimo", alias: "mimo", name: "Xiaomi MiMo", icon: "smart_toy", color: "#FF6900", textIcon: "XM", website: "https://xiaomimimo.com" }, "volcengine-ark": { id: "volcengine-ark", alias: "ark", name: "Volcengine Ark", icon: "cloud", color: "#1677FF", textIcon: "ARK", website: "https://ark.cn-beijing.volces.com" }, openai: { id: "openai", alias: "openai", name: "OpenAI", icon: "auto_awesome", color: "#10A37F", textIcon: "OA", website: "https://platform.openai.com", serviceKinds: ["llm", "embedding", "tts", "image", "imageToText", "webSearch"], thinkingConfig: THINKING_CONFIG.effort, searchViaChat: { defaultModel: "gpt-4o-mini", pricingUrl: "https://openai.com/api/pricing" }, ttsConfig: { baseUrl: "https://api.openai.com/v1/audio/speech", authType: "apikey", authHeader: "bearer", format: "openai", models: [{ id: "tts-1", name: "TTS-1" }, { id: "tts-1-hd", name: "TTS-1 HD" }, { id: "gpt-4o-mini-tts", name: "GPT-4o Mini TTS" }] }, embeddingConfig: { baseUrl: "https://api.openai.com/v1/embeddings", authType: "apikey", authHeader: "bearer", models: [{ id: "text-embedding-3-small", name: "Text Embedding 3 Small", dimensions: 1536 }, { id: "text-embedding-3-large", name: "Text Embedding 3 Large", dimensions: 3072 }, { id: "text-embedding-ada-002", name: "Text Embedding Ada 002", dimensions: 1536 }] } }, anthropic: { id: "anthropic", alias: "anthropic", name: "Anthropic", icon: "smart_toy", color: "#D97757", textIcon: "AN", website: "https://console.anthropic.com", serviceKinds: ["llm", "imageToText"] },