fix workflow node iterator . (#21008)
Signed-off-by: zhanluxianshen <zhanluxianshen@163.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -521,6 +521,31 @@ class IterationNode(BaseNode[IterationNodeData]):
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
elif self.node_data.error_handle_mode == ErrorHandleMode.TERMINATED:
|
elif self.node_data.error_handle_mode == ErrorHandleMode.TERMINATED:
|
||||||
|
yield NodeInIterationFailedEvent(
|
||||||
|
**metadata_event.model_dump(),
|
||||||
|
)
|
||||||
|
outputs[current_index] = None
|
||||||
|
|
||||||
|
# clean nodes resources
|
||||||
|
for node_id in iteration_graph.node_ids:
|
||||||
|
variable_pool.remove([node_id])
|
||||||
|
|
||||||
|
# iteration run failed
|
||||||
|
if self.node_data.is_parallel:
|
||||||
|
yield IterationRunFailedEvent(
|
||||||
|
iteration_id=self.id,
|
||||||
|
iteration_node_id=self.node_id,
|
||||||
|
iteration_node_type=self.node_type,
|
||||||
|
iteration_node_data=self.node_data,
|
||||||
|
parallel_mode_run_id=parallel_mode_run_id,
|
||||||
|
start_at=start_at,
|
||||||
|
inputs=inputs,
|
||||||
|
outputs={"output": outputs},
|
||||||
|
steps=len(iterator_list_value),
|
||||||
|
metadata={"total_tokens": graph_engine.graph_runtime_state.total_tokens},
|
||||||
|
error=event.error,
|
||||||
|
)
|
||||||
|
else:
|
||||||
yield IterationRunFailedEvent(
|
yield IterationRunFailedEvent(
|
||||||
iteration_id=self.id,
|
iteration_id=self.id,
|
||||||
iteration_node_id=self.node_id,
|
iteration_node_id=self.node_id,
|
||||||
@@ -528,11 +553,20 @@ class IterationNode(BaseNode[IterationNodeData]):
|
|||||||
iteration_node_data=self.node_data,
|
iteration_node_data=self.node_data,
|
||||||
start_at=start_at,
|
start_at=start_at,
|
||||||
inputs=inputs,
|
inputs=inputs,
|
||||||
outputs={"output": None},
|
outputs={"output": outputs},
|
||||||
steps=len(iterator_list_value),
|
steps=len(iterator_list_value),
|
||||||
metadata={"total_tokens": graph_engine.graph_runtime_state.total_tokens},
|
metadata={"total_tokens": graph_engine.graph_runtime_state.total_tokens},
|
||||||
error=event.error,
|
error=event.error,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# stop the iterator
|
||||||
|
yield RunCompletedEvent(
|
||||||
|
run_result=NodeRunResult(
|
||||||
|
status=WorkflowNodeExecutionStatus.FAILED,
|
||||||
|
error=event.error,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return
|
||||||
yield metadata_event
|
yield metadata_event
|
||||||
|
|
||||||
current_output_segment = variable_pool.get(self.node_data.output_selector)
|
current_output_segment = variable_pool.get(self.node_data.output_selector)
|
||||||
|
Reference in New Issue
Block a user