mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-10 00:28:31 +00:00
Fix #2220: Add validation for numeric model IDs in LLM class
Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
@@ -137,6 +137,13 @@ class LLM:
|
||||
self.context_window_size = 0
|
||||
self.kwargs = kwargs
|
||||
|
||||
# Validate model ID to ensure it's not a numeric value without a provider prefix
|
||||
if isinstance(self.model, (int, float)) or (isinstance(self.model, str) and self.model.isdigit()):
|
||||
raise ValueError(
|
||||
f"Invalid model ID: {self.model}. Model ID cannot be a numeric value without a provider prefix. "
|
||||
"Please specify a valid model ID with a provider prefix, e.g., 'openai/gpt-4'."
|
||||
)
|
||||
|
||||
litellm.drop_params = True
|
||||
litellm.set_verbose = False
|
||||
self.set_callbacks(callbacks)
|
||||
|
||||
21
tests/unit/test_llm.py
Normal file
21
tests/unit/test_llm.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import pytest
|
||||
|
||||
from crewai.llm import LLM
|
||||
|
||||
|
||||
def test_numeric_model_id_validation():
|
||||
# Test with integer model ID
|
||||
with pytest.raises(ValueError, match="Invalid model ID: 3420. Model ID cannot be a numeric value without a provider prefix."):
|
||||
LLM(model=3420)
|
||||
|
||||
# Test with string numeric model ID
|
||||
with pytest.raises(ValueError, match="Invalid model ID: 3420. Model ID cannot be a numeric value without a provider prefix."):
|
||||
LLM(model="3420")
|
||||
|
||||
# Test with valid model ID
|
||||
llm = LLM(model="openai/gpt-4")
|
||||
assert llm.model == "openai/gpt-4"
|
||||
|
||||
# Test with valid model ID that contains numbers
|
||||
llm = LLM(model="gpt-3.5-turbo")
|
||||
assert llm.model == "gpt-3.5-turbo"
|
||||
Reference in New Issue
Block a user