feat: cast files into correct type while invoking

This commit is contained in:
Yeuoly 2024-11-05 20:26:55 +08:00
parent 3c89d45a2d
commit e9d69f020a
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61

View File

@ -258,11 +258,18 @@ class ToolParameter(BaseModel):
return float(value)
else:
return int(value)
case (
ToolParameter.ToolParameterType.SYSTEM_FILES
| ToolParameter.ToolParameterType.FILE
| ToolParameter.ToolParameterType.FILES
):
case ToolParameter.ToolParameterType.SYSTEM_FILES | ToolParameter.ToolParameterType.FILES:
if not isinstance(value, list):
return [value]
return value
case ToolParameter.ToolParameterType.FILE:
if isinstance(value, list):
if len(value) != 1:
raise ValueError(
"This parameter only accepts one file but got multiple files while invoking."
)
else:
return value[0]
return value
case _:
return str(value)