diff --git a/libs/giskard-llm/src/giskard/llm/routing.py b/libs/giskard-llm/src/giskard/llm/routing.py index 50f9972ff4..d01fe78d32 100644 --- a/libs/giskard-llm/src/giskard/llm/routing.py +++ b/libs/giskard-llm/src/giskard/llm/routing.py @@ -24,6 +24,7 @@ _PROVIDER_REGISTRY: dict[str, tuple[str, str]] = { "openai": ("giskard.llm.providers.openai", "OpenAIProvider"), + "minimax": ("giskard.llm.providers.openai", "OpenAIProvider"), "google": ("giskard.llm.providers.google", "GoogleProvider"), "gemini": ("giskard.llm.providers.google", "GoogleProvider"), "anthropic": ("giskard.llm.providers.anthropic", "AnthropicProvider"), diff --git a/libs/giskard-llm/tests/test_routing.py b/libs/giskard-llm/tests/test_routing.py index 41b6f8c127..bd797260ae 100644 --- a/libs/giskard-llm/tests/test_routing.py +++ b/libs/giskard-llm/tests/test_routing.py @@ -3,6 +3,7 @@ from unittest.mock import AsyncMock, MagicMock, patch import pytest +from giskard.llm.providers.base import CompletionProvider from giskard.llm.routing import ( LLMClient, _create_provider, @@ -206,6 +207,20 @@ def test_client_unconfigured_registry_provider(): mock_create.assert_called_once_with("openai") +@pytest.mark.parametrize("model", ["MiniMax-M3", "MiniMax-M2.7"]) +def test_client_routes_minimax_models(model): + client = LLMClient() + with patch("giskard.llm.routing._create_provider") as mock_create: + mock_create.return_value = MagicMock() + provider, routed_model = client._resolve( + f"minimax/{model}", CompletionProvider, "completions" + ) + + assert provider is mock_create.return_value + assert routed_model == model + mock_create.assert_called_once_with("minimax") + + def test_client_unknown_provider_raises(): client = LLMClient() with pytest.raises(ValueError, match="not configured"):