From dffd108d456f41c94cfd26261c129645eda49a9b Mon Sep 17 00:00:00 2001 From: Abdelrahman Elsheikh Date: Mon, 10 Nov 2025 16:01:05 +0200 Subject: [PATCH] Add error handling for kwargs --- aixplain/factories/agent_factory/__init__.py | 11 ++++++++++- aixplain/factories/team_agent_factory/__init__.py | 10 ++++++++++ aixplain/modules/agent/__init__.py | 11 +++++++++++ aixplain/modules/team_agent/__init__.py | 10 ++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/aixplain/factories/agent_factory/__init__.py b/aixplain/factories/agent_factory/__init__.py index ae0158e1..5e2cce50 100644 --- a/aixplain/factories/agent_factory/__init__.py +++ b/aixplain/factories/agent_factory/__init__.py @@ -112,7 +112,16 @@ def create( tools = [] if tools is None else list(tools) workflow_tasks = [] if workflow_tasks is None else list(workflow_tasks) from aixplain.utils.llm_utils import get_llm_instance - + # Define supported kwargs + supported_kwargs = {"llm_id"} + + # Validate kwargs - raise error if unsupported kwargs are provided + unsupported_kwargs = set(kwargs.keys()) - supported_kwargs + if unsupported_kwargs: + raise ValueError( + f"Unsupported keyword argument(s): {', '.join(sorted(unsupported_kwargs))}. " + f"Supported kwargs are: {', '.join(sorted(supported_kwargs))}." + ) # Extract llm_id from kwargs if present (deprecated parameter) llm_id = kwargs.get("llm_id", None) if llm_id is not None: diff --git a/aixplain/factories/team_agent_factory/__init__.py b/aixplain/factories/team_agent_factory/__init__.py index e9d2ba7a..b1244962 100644 --- a/aixplain/factories/team_agent_factory/__init__.py +++ b/aixplain/factories/team_agent_factory/__init__.py @@ -92,6 +92,16 @@ def create( mentalist_llm: DEPRECATED. LLM for planning. use_mentalist: DEPRECATED. Whether to use the mentalist agent. """ + # Define supported kwargs + supported_kwargs = {"llm_id", "mentalist_llm", "use_mentalist"} + + # Validate kwargs - raise error if unsupported kwargs are provided + unsupported_kwargs = set(kwargs.keys()) - supported_kwargs + if unsupported_kwargs: + raise ValueError( + f"Unsupported keyword argument(s): {', '.join(sorted(unsupported_kwargs))}. " + f"Supported kwargs are: {', '.join(sorted(supported_kwargs))}." + ) # Handle deprecated parameters from kwargs if "llm_id" in kwargs: llm_id = kwargs.pop("llm_id") diff --git a/aixplain/modules/agent/__init__.py b/aixplain/modules/agent/__init__.py index 18483076..8a2ac0a3 100644 --- a/aixplain/modules/agent/__init__.py +++ b/aixplain/modules/agent/__init__.py @@ -605,6 +605,17 @@ def run( """ start = time.time() + # Define supported kwargs + supported_kwargs = {"output_format", "expected_output"} + + # Validate kwargs - raise error if unsupported kwargs are provided + unsupported_kwargs = set(kwargs.keys()) - supported_kwargs + if unsupported_kwargs: + raise ValueError( + f"Unsupported keyword argument(s): {', '.join(sorted(unsupported_kwargs))}. " + f"Supported kwargs are: {', '.join(sorted(supported_kwargs))}." + ) + # Extract deprecated parameters from kwargs output_format = kwargs.get("output_format", None) expected_output = kwargs.get("expected_output", None) diff --git a/aixplain/modules/team_agent/__init__.py b/aixplain/modules/team_agent/__init__.py index 09d444be..470d609e 100644 --- a/aixplain/modules/team_agent/__init__.py +++ b/aixplain/modules/team_agent/__init__.py @@ -132,6 +132,16 @@ def __init__( expected_output: Optional[Union[BaseModel, Text, dict]] = None, **additional_info, ) -> None: + # Define supported kwargs + supported_kwargs = {"llm_id", "mentalist_llm", "use_mentalist"} + + # Validate kwargs - raise error if unsupported kwargs are provided + unsupported_kwargs = set(additional_info.keys()) - supported_kwargs + if unsupported_kwargs: + raise ValueError( + f"Unsupported keyword argument(s): {', '.join(sorted(unsupported_kwargs))}. " + f"Supported kwargs are: {', '.join(sorted(supported_kwargs))}." + ) # Handle deprecated parameters from kwargs if "llm_id" in additional_info: llm_id = additional_info.pop("llm_id")