From 84505334a32fe0ce6b7a9ce6364fd2ec96b061ef Mon Sep 17 00:00:00 2001 From: AN Long Date: Fri, 27 Feb 2026 02:42:19 +0900 Subject: [PATCH] feat: add minimax china provider (#191) --- internal/providers/configs/minimax-china.json | 61 +++++++++++++++++++ internal/providers/providers.go | 8 +++ pkg/catwalk/provider.go | 44 ++++++------- 3 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 internal/providers/configs/minimax-china.json diff --git a/internal/providers/configs/minimax-china.json b/internal/providers/configs/minimax-china.json new file mode 100644 index 0000000000000000000000000000000000000000..881d5319598331306769b58b32f177514d34ab23 --- /dev/null +++ b/internal/providers/configs/minimax-china.json @@ -0,0 +1,61 @@ +{ + "name": "MiniMax China", + "id": "minimax-china", + "type": "anthropic", + "api_key": "$MINIMAX_API_KEY", + "api_endpoint": "https://api.minimaxi.com/anthropic", + "default_large_model_id": "MiniMax-M2.1", + "default_small_model_id": "MiniMax-M2.1", + "models": [ + { + "id": "MiniMax-M2.5-highspeed", + "name": "MiniMax-M2.5-highspeed", + "cost_per_1m_in": 0.6, + "cost_per_1m_out": 2.4, + "cost_per_1m_in_cached": 0.03, + "cost_per_1m_out_cached": 0.375, + "context_window": 204800, + "default_max_tokens": 131072 + }, + { + "id": "MiniMax-M2.5", + "name": "MiniMax-M2.5", + "cost_per_1m_in": 0.3, + "cost_per_1m_out": 1.2, + "cost_per_1m_in_cached": 0.03, + "cost_per_1m_out_cached": 0.375, + "context_window": 204800, + "default_max_tokens": 131072 + }, + { + "id": "MiniMax-M2.1-highspeed", + "name": "MiniMax-M2.1-highspeed", + "cost_per_1m_in": 0.6, + "cost_per_1m_out": 2.4, + "cost_per_1m_in_cached": 0.03, + "cost_per_1m_out_cached": 0.375, + "context_window": 204800, + "default_max_tokens": 131072 + }, + { + "id": "MiniMax-M2.1", + "name": "MiniMax-M2.1", + "cost_per_1m_in": 0.3, + "cost_per_1m_out": 1.2, + "cost_per_1m_in_cached": 0.03, + "cost_per_1m_out_cached": 0.375, + "context_window": 204800, + "default_max_tokens": 131072 + }, + { + "id": "MiniMax-M2", + "name": "MiniMax-M2", + "cost_per_1m_in": 0.3, + "cost_per_1m_out": 1.2, + "cost_per_1m_in_cached": 0.03, + "cost_per_1m_out_cached": 0.375, + "context_window": 196608, + "default_max_tokens": 128000 + } + ] +} diff --git a/internal/providers/providers.go b/internal/providers/providers.go index 0f9b8bc357477327acb8131f6b3b46481ae56815..b3af97a0f1a3664dc2f81265e45652396014a140 100644 --- a/internal/providers/providers.go +++ b/internal/providers/providers.go @@ -72,6 +72,9 @@ var vercelConfig []byte //go:embed configs/minimax.json var miniMaxConfig []byte +//go:embed configs/minimax-china.json +var miniMaxChinaConfig []byte + //go:embed configs/ionet.json var ioNetConfig []byte @@ -100,6 +103,7 @@ var providerRegistry = []ProviderFunc{ copilotProvider, vercelProvider, miniMaxProvider, + miniMaxChinaProvider, ioNetProvider, } @@ -205,6 +209,10 @@ func miniMaxProvider() catwalk.Provider { return loadProviderFromConfig(miniMaxConfig) } +func miniMaxChinaProvider() catwalk.Provider { + return loadProviderFromConfig(miniMaxChinaConfig) +} + func ioNetProvider() catwalk.Provider { return loadProviderFromConfig(ioNetConfig) } diff --git a/pkg/catwalk/provider.go b/pkg/catwalk/provider.go index e771cfefe9ba6bca5d4771547792d87a9c1b5eae..aa2561ad6401c430b34ff45bc46d492f5ac050ec 100644 --- a/pkg/catwalk/provider.go +++ b/pkg/catwalk/provider.go @@ -21,27 +21,28 @@ type InferenceProvider string // All the inference providers supported by the system. const ( - InferenceProviderOpenAI InferenceProvider = "openai" - InferenceProviderAnthropic InferenceProvider = "anthropic" - InferenceProviderSynthetic InferenceProvider = "synthetic" - InferenceProviderGemini InferenceProvider = "gemini" - InferenceProviderAzure InferenceProvider = "azure" - InferenceProviderBedrock InferenceProvider = "bedrock" - InferenceProviderVertexAI InferenceProvider = "vertexai" - InferenceProviderXAI InferenceProvider = "xai" - InferenceProviderZAI InferenceProvider = "zai" - InferenceProviderGROQ InferenceProvider = "groq" - InferenceProviderOpenRouter InferenceProvider = "openrouter" - InferenceProviderCerebras InferenceProvider = "cerebras" - InferenceProviderVenice InferenceProvider = "venice" - InferenceProviderChutes InferenceProvider = "chutes" - InferenceProviderHuggingFace InferenceProvider = "huggingface" - InferenceAIHubMix InferenceProvider = "aihubmix" - InferenceKimiCoding InferenceProvider = "kimi-coding" - InferenceProviderCopilot InferenceProvider = "copilot" - InferenceProviderVercel InferenceProvider = "vercel" - InferenceProviderMiniMax InferenceProvider = "minimax" - InferenceProviderIoNet InferenceProvider = "ionet" + InferenceProviderOpenAI InferenceProvider = "openai" + InferenceProviderAnthropic InferenceProvider = "anthropic" + InferenceProviderSynthetic InferenceProvider = "synthetic" + InferenceProviderGemini InferenceProvider = "gemini" + InferenceProviderAzure InferenceProvider = "azure" + InferenceProviderBedrock InferenceProvider = "bedrock" + InferenceProviderVertexAI InferenceProvider = "vertexai" + InferenceProviderXAI InferenceProvider = "xai" + InferenceProviderZAI InferenceProvider = "zai" + InferenceProviderGROQ InferenceProvider = "groq" + InferenceProviderOpenRouter InferenceProvider = "openrouter" + InferenceProviderCerebras InferenceProvider = "cerebras" + InferenceProviderVenice InferenceProvider = "venice" + InferenceProviderChutes InferenceProvider = "chutes" + InferenceProviderHuggingFace InferenceProvider = "huggingface" + InferenceAIHubMix InferenceProvider = "aihubmix" + InferenceKimiCoding InferenceProvider = "kimi-coding" + InferenceProviderCopilot InferenceProvider = "copilot" + InferenceProviderVercel InferenceProvider = "vercel" + InferenceProviderMiniMax InferenceProvider = "minimax" + InferenceProviderMiniMaxChina InferenceProvider = "minimax-china" + InferenceProviderIoNet InferenceProvider = "ionet" ) // Provider represents an AI provider configuration. @@ -107,6 +108,7 @@ func KnownProviders() []InferenceProvider { InferenceProviderCopilot, InferenceProviderVercel, InferenceProviderMiniMax, + InferenceProviderMiniMaxChina, } }