浏览代码

fix: correct output order in parallel mode for iteration nodes (#10323)

tags/0.11.1
Novice 11 个月前
父节点
当前提交
a7dbe58c85
没有帐户链接到提交者的电子邮件
共有 2 个文件被更改,包括 7 次插入5 次删除
  1. 5
    3
      api/core/workflow/nodes/iteration/iteration_node.py
  2. 2
    2
      web/i18n/en-US/workflow.ts

+ 5
- 3
api/core/workflow/nodes/iteration/iteration_node.py 查看文件

index=0, index=0,
pre_iteration_output=None, pre_iteration_output=None,
) )
outputs: list[Any] = []
outputs: list[Any] = [None] * len(iterator_list_value)
try: try:
if self.node_data.is_parallel: if self.node_data.is_parallel:
futures: list[Future] = [] futures: list[Future] = []
graph_engine, graph_engine,
iteration_graph, 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( yield IterationRunSucceededEvent(
iteration_id=self.id, iteration_id=self.id,
iteration_node_id=self.node_id, iteration_node_id=self.node_id,
yield NodeInIterationFailedEvent( yield NodeInIterationFailedEvent(
**metadata_event.model_dump(), **metadata_event.model_dump(),
) )
outputs.insert(current_index, None)
outputs[current_index] = None
variable_pool.add([self.node_id, "index"], next_index) variable_pool.add([self.node_id, "index"], next_index)
if next_index < len(iterator_list_value): if next_index < len(iterator_list_value):
variable_pool.add([self.node_id, "item"], iterator_list_value[next_index]) variable_pool.add([self.node_id, "item"], iterator_list_value[next_index])
yield metadata_event yield metadata_event


current_iteration_output = variable_pool.get(self.node_data.output_selector).value 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 # remove all nodes outputs from variable pool
for node_id in iteration_graph.node_ids: for node_id in iteration_graph.node_ids:
variable_pool.remove([node_id]) variable_pool.remove([node_id])

+ 2
- 2
web/i18n/en-US/workflow.ts 查看文件

errorResponseMethod: 'Error response method', errorResponseMethod: 'Error response method',
ErrorMethod: { ErrorMethod: {
operationTerminated: 'terminated', 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.', answerNodeWarningDesc: 'Parallel mode warning: Answer nodes, conversation variable assignments, and persistent read/write operations within iterations may cause exceptions.',
}, },

正在加载...
取消
保存