From 4835fc66b8b41f218cfddb92e44c30d176b88bef Mon Sep 17 00:00:00 2001 From: octo-patch <266937838+octo-patch@users.noreply.github.com> Date: Tue, 28 Jul 2026 09:54:34 +0000 Subject: [PATCH] feat(minimax): add MiniMax-M3 video input capability to model cost map Mark minimax/MiniMax-M3 with supports_video_input=true in both the bundled backup cost map and the root cost map so the documented video input modality is advertised alongside the existing supports_vision flag. Add regression tests covering the capability and provider. --- ...odel_prices_and_context_window_backup.json | 1 + model_prices_and_context_window.json | 1 + .../llms/minimax/chat/test_transformation.py | 33 +++++++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 2cef600ea32..484cb72a2b3 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -27139,6 +27139,7 @@ "supports_prompt_caching": true, "supports_reasoning": true, "supports_system_messages": true, + "supports_video_input": true, "supports_vision": true, "max_input_tokens": 1000000, "max_output_tokens": 128000 diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index db28118d52b..1a2e86162d5 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -27214,6 +27214,7 @@ "supports_prompt_caching": true, "supports_reasoning": true, "supports_system_messages": true, + "supports_video_input": true, "supports_vision": true, "max_input_tokens": 1000000, "max_output_tokens": 128000 diff --git a/tests/test_litellm/llms/minimax/chat/test_transformation.py b/tests/test_litellm/llms/minimax/chat/test_transformation.py index 286498830c5..67971e1240e 100644 --- a/tests/test_litellm/llms/minimax/chat/test_transformation.py +++ b/tests/test_litellm/llms/minimax/chat/test_transformation.py @@ -14,6 +14,7 @@ sys.path.insert( import litellm from litellm import completion +from litellm.litellm_core_utils.get_model_cost_map import GetModelCostMap from litellm.llms.minimax.chat.transformation import MinimaxChatConfig @@ -202,9 +203,37 @@ def test_minimax_chat_completion_streaming(): assert len(chunks) > 0 +class TestMiniMaxM3InputCapabilities: + """Tests that minimax/MiniMax-M3 advertises the input modalities + documented by MiniMax, including the video-input capability that was + previously missing from the model cost map.""" + + @pytest.fixture(autouse=True) + def model_cost_map(self): + """Load directly from the bundled backup so tests don't depend on remote fetch.""" + return GetModelCostMap.load_local_model_cost_map() + + def test_minimax_m3_in_model_cost_map(self, model_cost_map): + """minimax/MiniMax-M3 should be present in the model cost map.""" + assert "minimax/MiniMax-M3" in model_cost_map + + def test_minimax_m3_supports_vision(self, model_cost_map): + """minimax/MiniMax-M3 should advertise image input via supports_vision.""" + model_info = model_cost_map["minimax/MiniMax-M3"] + assert model_info.get("supports_vision") is True + + def test_minimax_m3_supports_video_input(self, model_cost_map): + """minimax/MiniMax-M3 should advertise video input via supports_video_input.""" + model_info = model_cost_map["minimax/MiniMax-M3"] + assert model_info.get("supports_video_input") is True + + def test_minimax_m3_provider(self, model_cost_map): + """minimax/MiniMax-M3 should be assigned to the minimax provider.""" + model_info = model_cost_map["minimax/MiniMax-M3"] + assert model_info["litellm_provider"] == "minimax" + + if __name__ == "__main__": - # Run basic tests that don't require API key - print("Testing MiniMax Chat Config...") test_minimax_chat_config() print("✓ Config test passed")