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
parent f7f8ef257c
commit 64e395d6cf
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