Workflow TTS playback node filtering issue. (#6877)

This commit is contained in:
chenxu9741
2024-08-04 14:28:56 +08:00
committed by GitHub
parent 5e634a59a2
commit dff3f41ef6
4 changed files with 37 additions and 2 deletions

View File

@@ -49,6 +49,8 @@ class BaseNode(ABC):
callbacks: Sequence[WorkflowCallback]
is_answer_previous_node: bool = False
def __init__(self, tenant_id: str,
app_id: str,
workflow_id: str,
@@ -110,6 +112,7 @@ class BaseNode(ABC):
text=text,
metadata={
"node_type": self.node_type,
"is_answer_previous_node": self.is_answer_previous_node,
"value_selector": value_selector
}
)

View File

@@ -177,6 +177,19 @@ class WorkflowEngineManager:
graph = workflow.graph_dict
try:
answer_prov_node_ids = []
for node in graph.get('nodes', []):
if node.get('id', '') == 'answer':
try:
answer_prov_node_ids.append(node.get('data', {})
.get('answer', '')
.replace('#', '')
.replace('.text', '')
.replace('{{', '')
.replace('}}', '').split('.')[0])
except Exception as e:
logger.error(e)
predecessor_node: BaseNode | None = None
current_iteration_node: BaseIterationNode | None = None
has_entry_node = False
@@ -301,6 +314,9 @@ class WorkflowEngineManager:
else:
next_node = self._get_node(workflow_run_state=workflow_run_state, graph=graph, node_id=next_node_id, callbacks=callbacks)
if next_node and next_node.node_id in answer_prov_node_ids:
next_node.is_answer_previous_node = True
# run workflow, run multiple target nodes in the future
self._run_workflow_node(
workflow_run_state=workflow_run_state,
@@ -854,6 +870,10 @@ class WorkflowEngineManager:
raise ValueError(f"Node {node.node_data.title} run failed: {node_run_result.error}")
if node.is_answer_previous_node and not isinstance(node, LLMNode):
if not node_run_result.metadata:
node_run_result.metadata = {}
node_run_result.metadata["is_answer_previous_node"]=True
workflow_nodes_and_result.result = node_run_result
# node run success