mirror of
https://github.com/langgenius/dify.git
synced 2026-06-18 13:27:00 +08:00
fix(api): normalize empty workflow tool file lists (#37125)
This commit is contained in:
@@ -363,11 +363,24 @@ class WorkflowTool(Tool):
|
||||
files.append(file_dict)
|
||||
except Exception:
|
||||
logger.exception("Failed to transform file %s", file)
|
||||
elif parameter.type == ToolParameter.ToolParameterType.FILES:
|
||||
value = tool_parameters.get(parameter.name)
|
||||
if not parameter.required and self._is_empty_files_parameter_value(value):
|
||||
value = []
|
||||
parameters_result[parameter.name] = value
|
||||
else:
|
||||
parameters_result[parameter.name] = tool_parameters.get(parameter.name)
|
||||
|
||||
return parameters_result, files
|
||||
|
||||
@staticmethod
|
||||
def _is_empty_files_parameter_value(value: Any) -> bool:
|
||||
"""Identify empty optional file-list placeholders before workflow input validation."""
|
||||
|
||||
if value is None or value == "":
|
||||
return True
|
||||
return isinstance(value, list) and all(item is None or item == "" for item in value)
|
||||
|
||||
def _extract_files(self, outputs: dict[str, Any]) -> tuple[dict[str, Any], list[File]]:
|
||||
"""
|
||||
extract files from the result
|
||||
|
||||
Reference in New Issue
Block a user