| @@ -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 | |||