mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-11 00:58:30 +00:00
Refactor: Extract message validation into helper method with type hints
Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
@@ -322,6 +322,23 @@ class LLM(BaseLLM):
|
|||||||
ANTHROPIC_PREFIXES = ("anthropic/", "claude-", "claude/")
|
ANTHROPIC_PREFIXES = ("anthropic/", "claude-", "claude/")
|
||||||
return any(prefix in model.lower() for prefix in ANTHROPIC_PREFIXES)
|
return any(prefix in model.lower() for prefix in ANTHROPIC_PREFIXES)
|
||||||
|
|
||||||
|
def _validate_messages(
|
||||||
|
self,
|
||||||
|
messages: Union[str, List[Dict[str, str]], None]
|
||||||
|
) -> None:
|
||||||
|
"""Validate that messages list is not empty or None.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
messages: Input messages for the LLM
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If messages is None or an empty list
|
||||||
|
"""
|
||||||
|
if messages is None:
|
||||||
|
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
||||||
|
if isinstance(messages, list) and len(messages) == 0:
|
||||||
|
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
||||||
|
|
||||||
def _prepare_completion_params(
|
def _prepare_completion_params(
|
||||||
self,
|
self,
|
||||||
messages: Union[str, List[Dict[str, str]]],
|
messages: Union[str, List[Dict[str, str]]],
|
||||||
@@ -337,12 +354,12 @@ class LLM(BaseLLM):
|
|||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Dict[str, Any]: Parameters for the completion call
|
Dict[str, Any]: Parameters for the completion call
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If messages is None or an empty list
|
||||||
"""
|
"""
|
||||||
# --- 1) Ensure messages list is not None or empty (additional safeguard)
|
# --- 1) Ensure messages list is not empty
|
||||||
if messages is None:
|
self._validate_messages(messages)
|
||||||
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
|
||||||
if isinstance(messages, list) and len(messages) == 0:
|
|
||||||
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
|
||||||
|
|
||||||
# --- 2) Format messages according to provider requirements
|
# --- 2) Format messages according to provider requirements
|
||||||
if isinstance(messages, str):
|
if isinstance(messages, str):
|
||||||
@@ -848,14 +865,11 @@ class LLM(BaseLLM):
|
|||||||
|
|
||||||
Raises:
|
Raises:
|
||||||
TypeError: If messages format is invalid
|
TypeError: If messages format is invalid
|
||||||
ValueError: If response format is not supported
|
ValueError: If messages is None or an empty list, or if response format is not supported
|
||||||
LLMContextLengthExceededException: If input exceeds model's context limit
|
LLMContextLengthExceededException: If input exceeds model's context limit
|
||||||
"""
|
"""
|
||||||
# --- 1) Validate messages is not None or empty to prevent IndexError in LiteLLM's ollama_pt()
|
# --- 1) Validate messages is not None or empty to prevent IndexError in LiteLLM's ollama_pt()
|
||||||
if messages is None:
|
self._validate_messages(messages)
|
||||||
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
|
||||||
if isinstance(messages, list) and len(messages) == 0:
|
|
||||||
raise ValueError("Messages list cannot be empty. At least one message is required.")
|
|
||||||
|
|
||||||
# --- 2) Emit call started event
|
# --- 2) Emit call started event
|
||||||
assert hasattr(crewai_event_bus, "emit")
|
assert hasattr(crewai_event_bus, "emit")
|
||||||
|
|||||||
Reference in New Issue
Block a user