|
@@ -195,14 +195,14 @@ class WorkflowTool(Tool):
|
|
|
if isinstance(value, list):
|
|
|
for item in value:
|
|
|
if isinstance(item, dict) and item.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
|
|
- item["tool_file_id"] = item.get("related_id")
|
|
|
+ item = self._update_file_mapping(item)
|
|
|
file = build_from_mapping(
|
|
|
mapping=item,
|
|
|
tenant_id=str(cast(Tool.Runtime, self.runtime).tenant_id),
|
|
|
)
|
|
|
files.append(file)
|
|
|
elif isinstance(value, dict) and value.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
|
|
- value["tool_file_id"] = value.get("related_id")
|
|
|
+ value = self._update_file_mapping(value)
|
|
|
file = build_from_mapping(
|
|
|
mapping=value,
|
|
|
tenant_id=str(cast(Tool.Runtime, self.runtime).tenant_id),
|
|
@@ -211,3 +211,11 @@ class WorkflowTool(Tool):
|
|
|
|
|
|
result[key] = value
|
|
|
return result, files
|
|
|
+
|
|
|
+ def _update_file_mapping(self, file_dict: dict) -> dict:
|
|
|
+ transfer_method = FileTransferMethod.value_of(file_dict.get("transfer_method"))
|
|
|
+ if transfer_method == FileTransferMethod.TOOL_FILE:
|
|
|
+ file_dict["tool_file_id"] = file_dict.get("related_id")
|
|
|
+ elif transfer_method == FileTransferMethod.LOCAL_FILE:
|
|
|
+ file_dict["upload_file_id"] = file_dict.get("related_id")
|
|
|
+ return file_dict
|