diff --git a/api/core/workflow/nodes/datasource/datasource_node.py b/api/core/workflow/nodes/datasource/datasource_node.py index 9c450d6db0..a9a7929717 100644 --- a/api/core/workflow/nodes/datasource/datasource_node.py +++ b/api/core/workflow/nodes/datasource/datasource_node.py @@ -197,7 +197,9 @@ class DatasourceNode(Node): storage_key=upload_file.key, url=upload_file.source_url, ) - variable_pool.add([self._node_id, "file"], file_info) + file_info_dict = file_info.to_dict() + file_info_dict["name"] = file_info.filename + variable_pool.add([self._node_id, "file"], file_info_dict) # variable_pool.add([self.node_id, "file"], file_info.to_dict()) yield StreamCompletedEvent( node_run_result=NodeRunResult( @@ -205,7 +207,7 @@ class DatasourceNode(Node): inputs=parameters_for_log, metadata={WorkflowNodeExecutionMetadataKey.DATASOURCE_INFO: datasource_info}, outputs={ - "file": datasource_info, + "file": file_info_dict, "datasource_type": datasource_type, }, ) @@ -501,6 +503,7 @@ class DatasourceNode(Node): conversation_id=None, ) file = None + file_info_dict = None for message in message_stream: if message.type == DatasourceMessage.MessageType.BINARY_LINK: assert isinstance(message.message, DatasourceMessage.TextMessage) @@ -527,14 +530,16 @@ class DatasourceNode(Node): tenant_id=self.tenant_id, ) if file: - variable_pool.add([self._node_id, "file"], file) + file_info_dict = file.to_dict() + file_info_dict["name"] = file.filename + variable_pool.add([self._node_id, "file"], file_info_dict) yield StreamCompletedEvent( node_run_result=NodeRunResult( status=WorkflowNodeExecutionStatus.SUCCEEDED, inputs=parameters_for_log, metadata={WorkflowNodeExecutionMetadataKey.DATASOURCE_INFO: datasource_info}, outputs={ - "file": file, + "file": file_info_dict, "datasource_type": datasource_type, }, )