From ac8f6ae716625a5378c32c072fe27f58d5836ce9 Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Sun, 19 Jul 2026 20:53:41 +0800 Subject: [PATCH] feat: refresh MiniMax model parameters --- .env.example | 3 +++ intentkit/config/config.py | 3 +++ intentkit/models/llm.py | 2 +- intentkit/models/llm.yaml | 22 +++++++++++++++++++++- tests/core/test_llm.py | 10 ++++++++++ 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 62d11dc5..5af480e0 100644 --- a/.env.example +++ b/.env.example @@ -26,6 +26,9 @@ GOOGLE_API_KEY= GOOGLE_GENAI_USE_VERTEXAI=false #GOOGLE_CLOUD_PROJECT= MINIMAX_PLAN_API_KEY= +# Global: https://api.minimax.io/anthropic +# China: https://api.minimaxi.com/anthropic +MINIMAX_ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic MIMO_PLAN_API_KEY= # OpenAI Compatible Provider diff --git a/intentkit/config/config.py b/intentkit/config/config.py index efe6479f..f56272bb 100644 --- a/intentkit/config/config.py +++ b/intentkit/config/config.py @@ -156,6 +156,9 @@ def __init__(self) -> None: self.deepseek_api_key: str | None = self.load("DEEPSEEK_API_KEY") self.xai_api_key: str | None = self.load("XAI_API_KEY") self.minimax_plan_api_key: str | None = self.load("MINIMAX_PLAN_API_KEY") + self.minimax_anthropic_base_url: str = self.load( + "MINIMAX_ANTHROPIC_BASE_URL", "https://api.minimax.io/anthropic" + ) self.mimo_plan_api_key: str | None = self.load("MIMO_PLAN_API_KEY") self.openrouter_api_key: str | None = self.load("OPENROUTER_API_KEY") # OpenAI Compatible provider diff --git a/intentkit/models/llm.py b/intentkit/models/llm.py index b95f0b07..bc0e832d 100644 --- a/intentkit/models/llm.py +++ b/intentkit/models/llm.py @@ -888,7 +888,7 @@ async def create_instance(self, params: dict[str, Any] = {}) -> BaseChatModel: kwargs: dict[str, Any] = { "model": info.id, "api_key": config.minimax_plan_api_key, - "base_url": "https://api.minimax.io/anthropic", + "base_url": config.minimax_anthropic_base_url, "timeout": info.timeout, "max_retries": 3, } diff --git a/intentkit/models/llm.yaml b/intentkit/models/llm.yaml index cbedb600..ebab3944 100644 --- a/intentkit/models/llm.yaml +++ b/intentkit/models/llm.yaml @@ -889,7 +889,7 @@ cached_input_price: "0.12" output_price: "2.4" price_level: 2 - context_length: 524288 + context_length: 1000000 output_length: 512000 intelligence: 5 speed: 3 @@ -902,3 +902,23 @@ supports_frequency_penalty: true supports_presence_penalty: true timeout: 300 + +- id: "MiniMax-M2.7" + name: "MiniMax M2.7" + provider: minimax + enabled: true + input_price: "0.3" + cached_input_price: "0.06" + output_price: "1.2" + price_level: 2 + context_length: 204800 + output_length: 131072 + intelligence: 4 + speed: 4 + supports_image_input: false + supports_audio_input: false + supports_video_input: false + supports_file_input: false + reasoning_effort: "high" + supports_temperature: false + timeout: 300 diff --git a/tests/core/test_llm.py b/tests/core/test_llm.py index a00fefef..f388b42f 100644 --- a/tests/core/test_llm.py +++ b/tests/core/test_llm.py @@ -3,6 +3,16 @@ from intentkit.models.llm import LLMProvider, load_default_llm_models +def test_minimax_catalog_contains_current_models(): + """The native MiniMax catalog mirrors the current subscription API lineup.""" + with patch("intentkit.models.llm.config") as mock_config: + mock_config.minimax_plan_api_key = "test-key" + models = load_default_llm_models() + + assert models["minimax:MiniMax-M3"].context_length == 1_000_000 + assert models["minimax:MiniMax-M2.7"].context_length == 204_800 + + def test_llm_model_filtering(): """Test that models are filtered based on available API keys in config."""