rename to next loop on failure (#4194)

This commit is contained in:
LawyZheng
2025-12-04 16:33:58 +08:00
committed by GitHub
parent 606580828f
commit bc8b20a742
18 changed files with 62 additions and 64 deletions

View File

@@ -137,7 +137,7 @@ class Block(BaseModel, abc.ABC):
# Only valid for blocks inside a for loop block
# Whether to continue to the next iteration when the block fails
next_iteration_on_failure: bool = False
next_loop_on_failure: bool = False
@property
def override_llm_key(self) -> str | None:
@@ -1390,15 +1390,15 @@ class ForLoopBlock(Block):
organization_id=organization_id,
)
block_outputs.append(failure_block_result)
# If next_iteration_on_failure is False, stop the entire loop
if not self.next_iteration_on_failure:
# If next_loop_on_failure is False, stop the entire loop
if not self.next_loop_on_failure:
outputs_with_loop_values.append(each_loop_output_values)
return LoopBlockExecutedResult(
outputs_with_loop_values=outputs_with_loop_values,
block_outputs=block_outputs,
last_block=current_block,
)
# If next_iteration_on_failure is True, break out of the block loop for this iteration
# If next_loop_on_failure is True, break out of the block loop for this iteration
break
if block_output.status == BlockStatus.canceled:
@@ -1419,8 +1419,8 @@ class ForLoopBlock(Block):
if (
not block_output.success
and not loop_block.continue_on_failure
and not loop_block.next_iteration_on_failure
and not self.next_iteration_on_failure
and not loop_block.next_loop_on_failure
and not self.next_loop_on_failure
):
LOG.info(
f"ForLoopBlock: Encountered a failure processing block {block_idx} during loop {loop_idx}, terminating early",
@@ -1430,8 +1430,7 @@ class ForLoopBlock(Block):
loop_over_value=loop_over_value,
loop_block_continue_on_failure=loop_block.continue_on_failure,
failure_reason=block_output.failure_reason,
next_iteration_on_failure=loop_block.next_iteration_on_failure
or self.next_iteration_on_failure,
next_loop_on_failure=loop_block.next_loop_on_failure or self.next_loop_on_failure,
)
outputs_with_loop_values.append(each_loop_output_values)
return LoopBlockExecutedResult(
@@ -1443,15 +1442,14 @@ class ForLoopBlock(Block):
if block_output.success or loop_block.continue_on_failure:
continue
if loop_block.next_iteration_on_failure or self.next_iteration_on_failure:
if loop_block.next_loop_on_failure or self.next_loop_on_failure:
LOG.info(
f"ForLoopBlock: Block {block_idx} during loop {loop_idx} failed but will continue to next iteration",
block_outputs=block_outputs,
loop_idx=loop_idx,
block_idx=block_idx,
loop_over_value=loop_over_value,
loop_block_next_iteration_on_failure=loop_block.next_iteration_on_failure
or self.next_iteration_on_failure,
loop_block_next_loop_on_failure=loop_block.next_loop_on_failure or self.next_loop_on_failure,
)
break

View File

@@ -2951,7 +2951,7 @@ class WorkflowService:
"next_block_label": block_yaml.next_block_label,
"output_parameter": output_parameter,
"continue_on_failure": block_yaml.continue_on_failure,
"next_iteration_on_failure": block_yaml.next_iteration_on_failure,
"next_loop_on_failure": block_yaml.next_loop_on_failure,
"model": block_yaml.model,
}