Skip to content

Commit

Permalink
fix(workflow_tool): enable File parameter support after workflow is p…
Browse files Browse the repository at this point in the history
…ublished as a tool (#13175)
  • Loading branch information
HuChundong authored Feb 8, 2025
1 parent 6622c7f commit cf36745
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions api/core/tools/tool/workflow_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,14 +195,14 @@ def _extract_files(self, outputs: dict) -> tuple[dict, list[File]]:
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),
Expand All @@ -211,3 +211,11 @@ def _extract_files(self, outputs: dict) -> tuple[dict, list[File]]:

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

0 comments on commit cf36745

Please sign in to comment.