Fix/workflow tool incorrect parameter configurations (#3402)

Co-authored-by: Joel <iamjoel007@gmail.com>
This commit is contained in:
Yeuoly 2024-04-12 15:46:34 +08:00 committed by GitHub
commit 64e395d6cf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 72 additions and 13 deletions

View file

@ -243,8 +243,21 @@ class Tool(BaseModel, ABC):
tool_parameters[parameter.name] = float(tool_parameters[parameter.name])
elif parameter.type == ToolParameter.ToolParameterType.BOOLEAN:
if not isinstance(tool_parameters[parameter.name], bool):
tool_parameters[parameter.name] = bool(tool_parameters[parameter.name])
# check if it is a string
if isinstance(tool_parameters[parameter.name], str):
# check true false
if tool_parameters[parameter.name].lower() in ['true', 'false']:
tool_parameters[parameter.name] = tool_parameters[parameter.name].lower() == 'true'
# check 1 0
elif tool_parameters[parameter.name] in ['1', '0']:
tool_parameters[parameter.name] = tool_parameters[parameter.name] == '1'
else:
tool_parameters[parameter.name] = bool(tool_parameters[parameter.name])
elif isinstance(tool_parameters[parameter.name], int | float):
tool_parameters[parameter.name] = tool_parameters[parameter.name] != 0
else:
tool_parameters[parameter.name] = bool(tool_parameters[parameter.name])
return tool_parameters
@abstractmethod