|
|
|
@@ -259,36 +259,36 @@ class WorkflowAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCycleMa |
|
|
|
|
|
|
|
workflow_node_execution = self._handle_node_execution_start(workflow_run=workflow_run, event=event) |
|
|
|
|
|
|
|
response = self._workflow_node_start_to_stream_response( |
|
|
|
node_start_response = self._workflow_node_start_to_stream_response( |
|
|
|
event=event, |
|
|
|
task_id=self._application_generate_entity.task_id, |
|
|
|
workflow_node_execution=workflow_node_execution, |
|
|
|
) |
|
|
|
|
|
|
|
if response: |
|
|
|
yield response |
|
|
|
if node_start_response: |
|
|
|
yield node_start_response |
|
|
|
elif isinstance(event, QueueNodeSucceededEvent): |
|
|
|
workflow_node_execution = self._handle_workflow_node_execution_success(event) |
|
|
|
|
|
|
|
response = self._workflow_node_finish_to_stream_response( |
|
|
|
node_success_response = self._workflow_node_finish_to_stream_response( |
|
|
|
event=event, |
|
|
|
task_id=self._application_generate_entity.task_id, |
|
|
|
workflow_node_execution=workflow_node_execution, |
|
|
|
) |
|
|
|
|
|
|
|
if response: |
|
|
|
yield response |
|
|
|
if node_success_response: |
|
|
|
yield node_success_response |
|
|
|
elif isinstance(event, QueueNodeFailedEvent | QueueNodeInIterationFailedEvent | QueueNodeExceptionEvent): |
|
|
|
workflow_node_execution = self._handle_workflow_node_execution_failed(event) |
|
|
|
|
|
|
|
response = self._workflow_node_finish_to_stream_response( |
|
|
|
node_failed_response = self._workflow_node_finish_to_stream_response( |
|
|
|
event=event, |
|
|
|
task_id=self._application_generate_entity.task_id, |
|
|
|
workflow_node_execution=workflow_node_execution, |
|
|
|
) |
|
|
|
|
|
|
|
if response: |
|
|
|
yield response |
|
|
|
if node_failed_response: |
|
|
|
yield node_failed_response |
|
|
|
elif isinstance(event, QueueParallelBranchRunStartedEvent): |
|
|
|
if not workflow_run: |
|
|
|
raise Exception("Workflow run not initialized.") |
|
|
|
@@ -377,20 +377,19 @@ class WorkflowAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCycleMa |
|
|
|
|
|
|
|
if not graph_runtime_state: |
|
|
|
raise Exception("Graph runtime state not initialized.") |
|
|
|
handle_args = { |
|
|
|
"workflow_run": workflow_run, |
|
|
|
"start_at": graph_runtime_state.start_at, |
|
|
|
"total_tokens": graph_runtime_state.total_tokens, |
|
|
|
"total_steps": graph_runtime_state.node_run_steps, |
|
|
|
"status": WorkflowRunStatus.FAILED |
|
|
|
workflow_run = self._handle_workflow_run_failed( |
|
|
|
workflow_run=workflow_run, |
|
|
|
start_at=graph_runtime_state.start_at, |
|
|
|
total_tokens=graph_runtime_state.total_tokens, |
|
|
|
total_steps=graph_runtime_state.node_run_steps, |
|
|
|
status=WorkflowRunStatus.FAILED |
|
|
|
if isinstance(event, QueueWorkflowFailedEvent) |
|
|
|
else WorkflowRunStatus.STOPPED, |
|
|
|
"error": event.error if isinstance(event, QueueWorkflowFailedEvent) else event.get_stop_reason(), |
|
|
|
"conversation_id": None, |
|
|
|
"trace_manager": trace_manager, |
|
|
|
"exceptions_count": event.exceptions_count if isinstance(event, QueueWorkflowFailedEvent) else 0, |
|
|
|
} |
|
|
|
workflow_run = self._handle_workflow_run_failed(**handle_args) |
|
|
|
error=event.error if isinstance(event, QueueWorkflowFailedEvent) else event.get_stop_reason(), |
|
|
|
conversation_id=None, |
|
|
|
trace_manager=trace_manager, |
|
|
|
exceptions_count=event.exceptions_count if isinstance(event, QueueWorkflowFailedEvent) else 0, |
|
|
|
) |
|
|
|
|
|
|
|
# save workflow app log |
|
|
|
self._save_workflow_app_log(workflow_run) |
|
|
|
@@ -404,21 +403,16 @@ class WorkflowAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCycleMa |
|
|
|
|
|
|
|
if not graph_runtime_state: |
|
|
|
raise Exception("Graph runtime state not initialized.") |
|
|
|
handle_args = { |
|
|
|
"workflow_run": workflow_run, |
|
|
|
"start_at": graph_runtime_state.start_at, |
|
|
|
"total_tokens": graph_runtime_state.total_tokens, |
|
|
|
"total_steps": graph_runtime_state.node_run_steps, |
|
|
|
"status": WorkflowRunStatus.FAILED |
|
|
|
if isinstance(event, QueueWorkflowFailedEvent) |
|
|
|
else WorkflowRunStatus.STOPPED, |
|
|
|
"error": event.error if isinstance(event, QueueWorkflowFailedEvent) else event.get_stop_reason(), |
|
|
|
"conversation_id": None, |
|
|
|
"trace_manager": trace_manager, |
|
|
|
"exceptions_count": event.exceptions_count, |
|
|
|
} |
|
|
|
workflow_run = self._handle_workflow_run_partial_success(**handle_args) |
|
|
|
|
|
|
|
workflow_run = self._handle_workflow_run_partial_success( |
|
|
|
workflow_run=workflow_run, |
|
|
|
start_at=graph_runtime_state.start_at, |
|
|
|
total_tokens=graph_runtime_state.total_tokens, |
|
|
|
total_steps=graph_runtime_state.node_run_steps, |
|
|
|
outputs=event.outputs, |
|
|
|
exceptions_count=event.exceptions_count, |
|
|
|
conversation_id=None, |
|
|
|
trace_manager=trace_manager, |
|
|
|
) |
|
|
|
# save workflow app log |
|
|
|
self._save_workflow_app_log(workflow_run) |
|
|
|
|