Skip to content

Commit

Permalink
fix: correct output order in parallel mode for iteration nodes (langg…
Browse files Browse the repository at this point in the history
  • Loading branch information
Nov1c444 authored and JunXu01 committed Nov 9, 2024
1 parent 5403817 commit a1d409f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
8 changes: 5 additions & 3 deletions api/core/workflow/nodes/iteration/iteration_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ def _run(self) -> Generator[NodeEvent | InNodeEvent, None, None]:
index=0,
pre_iteration_output=None,
)
outputs: list[Any] = []
outputs: list[Any] = [None] * len(iterator_list_value)
try:
if self.node_data.is_parallel:
futures: list[Future] = []
Expand Down Expand Up @@ -214,6 +214,8 @@ def _run(self) -> Generator[NodeEvent | InNodeEvent, None, None]:
graph_engine,
iteration_graph,
)
if self.node_data.error_handle_mode == ErrorHandleMode.REMOVE_ABNORMAL_OUTPUT:
outputs = [output for output in outputs if output is not None]
yield IterationRunSucceededEvent(
iteration_id=self.id,
iteration_node_id=self.node_id,
Expand Down Expand Up @@ -425,7 +427,7 @@ def _run_single_iter(
yield NodeInIterationFailedEvent(
**metadata_event.model_dump(),
)
outputs.insert(current_index, None)
outputs[current_index] = None
variable_pool.add([self.node_id, "index"], next_index)
if next_index < len(iterator_list_value):
variable_pool.add([self.node_id, "item"], iterator_list_value[next_index])
Expand Down Expand Up @@ -473,7 +475,7 @@ def _run_single_iter(
yield metadata_event

current_iteration_output = variable_pool.get(self.node_data.output_selector).value
outputs.insert(current_index, current_iteration_output)
outputs[current_index] = current_iteration_output
# remove all nodes outputs from variable pool
for node_id in iteration_graph.node_ids:
variable_pool.remove([node_id])
Expand Down
4 changes: 2 additions & 2 deletions web/i18n/en-US/workflow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -569,8 +569,8 @@ const translation = {
errorResponseMethod: 'Error response method',
ErrorMethod: {
operationTerminated: 'terminated',
continueOnError: 'continue-on-error',
removeAbnormalOutput: 'remove-abnormal-output',
continueOnError: 'continue on error',
removeAbnormalOutput: 'remove abnormal output',
},
answerNodeWarningDesc: 'Parallel mode warning: Answer nodes, conversation variable assignments, and persistent read/write operations within iterations may cause exceptions.',
},
Expand Down

0 comments on commit a1d409f

Please sign in to comment.