mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-08 15:48:29 +00:00
Fix issue #2984: Add support for watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8 model
- Added watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8 to the watsonx models list in constants.py - Created comprehensive tests to verify CLI model selection and LLM instantiation - All existing tests continue to pass with no regressions - Fixes CLI validation error when users try to select this model for watsonx provider Resolves #2984 Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
@@ -237,6 +237,7 @@ MODELS = {
|
||||
"watsonx/meta-llama/llama-3-2-1b-instruct",
|
||||
"watsonx/meta-llama/llama-3-2-90b-vision-instruct",
|
||||
"watsonx/meta-llama/llama-3-405b-instruct",
|
||||
"watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8",
|
||||
"watsonx/mistral/mistral-large",
|
||||
"watsonx/ibm/granite-3-8b-instruct",
|
||||
],
|
||||
|
||||
48
tests/cli/test_watsonx_model_support.py
Normal file
48
tests/cli/test_watsonx_model_support.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import pytest
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
from crewai.cli.constants import MODELS
|
||||
from crewai.cli.provider import select_model
|
||||
|
||||
|
||||
def test_watsonx_models_include_llama4_maverick():
|
||||
"""Test that the watsonx models list includes the Llama 4 Maverick model."""
|
||||
watsonx_models = MODELS.get("watson", [])
|
||||
assert "watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8" in watsonx_models
|
||||
|
||||
|
||||
def test_select_model_watsonx_llama4_maverick():
|
||||
"""Test that the Llama 4 Maverick model can be selected for watsonx provider."""
|
||||
provider = "watson"
|
||||
provider_models = {}
|
||||
|
||||
with patch("crewai.cli.provider.select_choice") as mock_select_choice:
|
||||
mock_select_choice.return_value = "watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8"
|
||||
|
||||
result = select_model(provider, provider_models)
|
||||
|
||||
assert result == "watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8"
|
||||
mock_select_choice.assert_called_once()
|
||||
|
||||
call_args = mock_select_choice.call_args
|
||||
available_models = call_args[0][1]
|
||||
assert "watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8" in available_models
|
||||
|
||||
|
||||
def test_watsonx_model_list_ordering():
|
||||
"""Test that watsonx models are properly ordered."""
|
||||
watsonx_models = MODELS.get("watson", [])
|
||||
|
||||
expected_models = [
|
||||
"watsonx/meta-llama/llama-3-1-70b-instruct",
|
||||
"watsonx/meta-llama/llama-3-1-8b-instruct",
|
||||
"watsonx/meta-llama/llama-3-2-11b-vision-instruct",
|
||||
"watsonx/meta-llama/llama-3-2-1b-instruct",
|
||||
"watsonx/meta-llama/llama-3-2-90b-vision-instruct",
|
||||
"watsonx/meta-llama/llama-3-405b-instruct",
|
||||
"watsonx/meta-llama/llama-4-maverick-17b-128e-instruct-fp8",
|
||||
"watsonx/mistral/mistral-large",
|
||||
"watsonx/ibm/granite-3-8b-instruct",
|
||||
]
|
||||
|
||||
assert watsonx_models == expected_models
|
||||
Reference in New Issue
Block a user