diff --git a/api/core/tools/tool/tool.py b/api/core/tools/tool/tool.py index 4203180992..03aa0623fe 100644 --- a/api/core/tools/tool/tool.py +++ b/api/core/tools/tool/tool.py @@ -233,7 +233,10 @@ class Tool(BaseModel, ABC): ToolParameter.ToolParameterType.STRING, ToolParameter.ToolParameterType.SELECT, ] and not isinstance(tool_parameters[parameter.name], str): - tool_parameters[parameter.name] = str(tool_parameters[parameter.name]) + if tool_parameters[parameter.name] is None: + tool_parameters[parameter.name] = '' + else: + tool_parameters[parameter.name] = str(tool_parameters[parameter.name]) elif parameter.type == ToolParameter.ToolParameterType.NUMBER \ and not isinstance(tool_parameters[parameter.name], int | float): if isinstance(tool_parameters[parameter.name], str): @@ -241,6 +244,10 @@ class Tool(BaseModel, ABC): tool_parameters[parameter.name] = int(tool_parameters[parameter.name]) except ValueError: tool_parameters[parameter.name] = float(tool_parameters[parameter.name]) + elif isinstance(tool_parameters[parameter.name], bool): + tool_parameters[parameter.name] = int(tool_parameters[parameter.name]) + elif tool_parameters[parameter.name] is None: + tool_parameters[parameter.name] = 0 elif parameter.type == ToolParameter.ToolParameterType.BOOLEAN: if not isinstance(tool_parameters[parameter.name], bool): # check if it is a string