diff --git a/api/core/workflow/graph_engine/graph_engine.py b/api/core/workflow/graph_engine/graph_engine.py index 9bb54da3a..498d15c91 100644 --- a/api/core/workflow/graph_engine/graph_engine.py +++ b/api/core/workflow/graph_engine/graph_engine.py @@ -873,11 +873,12 @@ class GraphEngine: def create_copy(self): """ create a graph engine copy - :return: with a new variable pool instance of graph engine + :return: graph engine with a new variable pool and initialized total tokens """ new_instance = copy(self) new_instance.graph_runtime_state = copy(self.graph_runtime_state) new_instance.graph_runtime_state.variable_pool = deepcopy(self.graph_runtime_state.variable_pool) + new_instance.graph_runtime_state.total_tokens = 0 return new_instance def _handle_continue_on_error( diff --git a/api/core/workflow/nodes/iteration/iteration_node.py b/api/core/workflow/nodes/iteration/iteration_node.py index 16fccf8bf..a7d0aefc6 100644 --- a/api/core/workflow/nodes/iteration/iteration_node.py +++ b/api/core/workflow/nodes/iteration/iteration_node.py @@ -590,7 +590,6 @@ class IterationNode(BaseNode[IterationNodeData]): with flask_app.app_context(): parallel_mode_run_id = uuid.uuid4().hex graph_engine_copy = graph_engine.create_copy() - graph_engine_copy.graph_runtime_state.total_tokens = 0 variable_pool_copy = graph_engine_copy.graph_runtime_state.variable_pool variable_pool_copy.add([self.node_id, "index"], index) variable_pool_copy.add([self.node_id, "item"], item)