diff --git a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py index c6d11926ed..b1a84b2603 100644 --- a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py +++ b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py @@ -1,14 +1,33 @@ from typing import cast from core.workflow.entities.base_node_data_entities import BaseNodeData -from core.workflow.entities.node_entities import NodeRunResult +from core.workflow.entities.node_entities import NodeRunResult, NodeType from core.workflow.entities.variable_pool import VariablePool from core.workflow.nodes.base_node import BaseNode +from core.workflow.nodes.variable_assigner.entities import VariableAssignerNodeData +from models.workflow import WorkflowNodeExecutionStatus class VariableAssignerNode(BaseNode): + _node_data_cls = VariableAssignerNodeData + _node_type = NodeType.VARIABLE_ASSIGNER + def _run(self, variable_pool: VariablePool) -> NodeRunResult: - pass + node_data: VariableAssignerNodeData = cast(self._node_data_cls, self.node_data) + value = variable_pool.get_variable_value(node_data.variables) + variable_pool.append_variable( + node_id=self.node_id, + variable_key_list=node_data.variables, + value=value + ) + outputs = { + "output": value + } + + return NodeRunResult( + status=WorkflowNodeExecutionStatus.SUCCEEDED, + outputs=outputs, + ) @classmethod def _extract_variable_selector_to_variable_mapping(cls, node_data: BaseNodeData) -> dict[str, list[str]]: