fix: transform None into correct dest type (#4077)

This commit is contained in:
Yeuoly 2024-05-04 16:34:42 +08:00 committed by GitHub
parent 5940564d84
commit b5f101bdac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

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