From 635d25d330a627564950bc85b76f7c3f28cf3420 Mon Sep 17 00:00:00 2001 From: liujin-patsnap <134919030+patsnap-liujin@users.noreply.github.com> Date: Mon, 21 Apr 2025 09:15:24 +0000 Subject: [PATCH] Fix: Correct file variable handling for custom tools in workflow --- api/core/workflow/nodes/tool/tool_node.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/api/core/workflow/nodes/tool/tool_node.py b/api/core/workflow/nodes/tool/tool_node.py index 0fb7c5958a..9ab46cde79 100644 --- a/api/core/workflow/nodes/tool/tool_node.py +++ b/api/core/workflow/nodes/tool/tool_node.py @@ -279,15 +279,13 @@ class ToolNode(BaseNode[ToolNodeData]): json.append(message.message.json_object) elif message.type == ToolInvokeMessage.MessageType.LINK: assert isinstance(message.message, ToolInvokeMessage.TextMessage) - url = message.message.text - # 获取 transfer_method,与其他类型保持一致 if message.meta: transfer_method = message.meta.get("transfer_method", FileTransferMethod.TOOL_FILE) else: transfer_method = FileTransferMethod.TOOL_FILE - tool_file_id = str(url).rsplit('/', maxsplit=1)[-1].split(".")[0] + tool_file_id = message.message.text.split("/")[-1].split(".")[0] with Session(db.engine) as session: stmt = select(ToolFile).where(ToolFile.id == tool_file_id) @@ -295,12 +293,11 @@ class ToolNode(BaseNode[ToolNodeData]): if tool_file is None: raise ToolFileError(f"Tool file {tool_file_id} does not exist") - # 完整的 mapping 信息 mapping = { "tool_file_id": tool_file_id, "type": file_factory.get_file_type_by_mime_type(tool_file.mimetype), "transfer_method": transfer_method, - "url": url, + "url": message.message.text, } file = file_factory.build_from_mapping( @@ -309,7 +306,6 @@ class ToolNode(BaseNode[ToolNodeData]): ) files.append(file) - # 保持原有的文本处理 stream_text = f"Link: {message.message.text}\n" text += stream_text yield RunStreamChunkEvent(chunk_content=stream_text, from_variable_selector=[self.node_id, "text"])