Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/application/flow/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def get_up_nodes(self, node_id) -> List[Node]:
@param node_id: 节点id
@return: 节点列表
"""
return [en.node for en in self.up_node_map.get(node_id)]
return [en.node for en in (self.up_node_map.get(node_id) or [])]

def get_next_nodes(self, node_id) -> List[Node]:
"""
Expand Down Expand Up @@ -243,7 +243,7 @@ def is_valid_start_node(self):

def is_valid_model_params(self):
node_list = [node for node in self.nodes if (
node.type == 'ai-chat-node' or node.type == 'question-node' or node.type == 'parameter-extraction-node')]
node.type == 'ai-chat-node' or node.type == 'question-node' or node.type == 'parameter-extraction-node')]
for node in node_list:
model = QuerySet(Model).filter(id=node.properties.get('node_data', {}).get('model_id')).first()
if model is None:
Expand Down
18 changes: 16 additions & 2 deletions apps/application/flow/workflow_manage.py
Original file line number Diff line number Diff line change
Expand Up @@ -664,9 +664,16 @@ def get_next_node_list(self, current_node, current_node_result):
f"{edge.sourceNodeId}_{current_node_result.node_variable.get('branch_id')}_right" == edge.sourceAnchorId):
if next_node.properties.get('condition', "AND") == 'AND':
if self.dependent_node_been_executed(edge.targetNodeId):
up_nodes = self.flow.get_up_nodes(edge.targetNodeId)
up_node_id_list = current_node.up_node_id_list
if up_nodes and len(up_nodes) > 1:
up_nodes.sort(key=lambda node: node.id)
first = up_nodes[0]
up_node_id_list = [n_c for n_c in self.node_context if n_c.node.id == first.id][
0].up_node_id_list
node_list.append(
self.get_node_cls_by_id(edge.targetNodeId,
[*current_node.up_node_id_list, current_node.node.id]))
[*up_node_id_list, current_node.node.id]))
else:
node_list.append(
self.get_node_cls_by_id(edge.targetNodeId,
Expand All @@ -678,9 +685,16 @@ def get_next_node_list(self, current_node, current_node_result):
next_node = edge_node.node
if next_node.properties.get('condition', "AND") == 'AND':
if self.dependent_node_been_executed(edge.targetNodeId):
up_nodes = self.flow.get_up_nodes(edge.targetNodeId)
up_node_id_list = current_node.up_node_id_list
if up_nodes and len(up_nodes) > 1:
up_nodes.sort(key=lambda node: node.id)
first = up_nodes[0]
up_node_id_list = [n_c for n_c in self.node_context if n_c.node.id == first.id][
0].up_node_id_list
node_list.append(
self.get_node_cls_by_id(edge.targetNodeId,
[*current_node.up_node_id_list, current_node.node.id]))
[*up_node_id_list, current_node.node.id]))
else:
node_list.append(
self.get_node_cls_by_id(edge.targetNodeId,
Expand Down