From 416d5f4660423d5c2cd6090d97b8d05b9a684726 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Sat, 9 May 2026 11:46:43 +0800 Subject: [PATCH] fix: When the conversation is called non streaming, the loop cannot escape --- .../flow/step_node/loop_node/impl/base_loop_node.py | 6 +++--- apps/application/flow/workflow_manage.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/application/flow/step_node/loop_node/impl/base_loop_node.py b/apps/application/flow/step_node/loop_node/impl/base_loop_node.py index 860da7874a4..c78c953fcaf 100644 --- a/apps/application/flow/step_node/loop_node/impl/base_loop_node.py +++ b/apps/application/flow/step_node/loop_node/impl/base_loop_node.py @@ -216,10 +216,10 @@ def loop(workflow_manage_new_instance, node: INode, generate_loop): def get_tokens(loop_node_data): message_tokens = 0 answer_tokens = 0 - for details in loop_node_data: - message_tokens += sum([row.get('message_tokens') for row in details.values() if + for details in (loop_node_data or {}): + message_tokens += sum([row.get('message_tokens') or 0 for row in details.values() if 'message_tokens' in row and row.get('message_tokens') is not None]) - answer_tokens += sum([row.get('answer_tokens') for row in details.values() if + answer_tokens += sum([row.get('answer_tokens') or 0 for row in details.values() if 'answer_tokens' in row and row.get('answer_tokens') is not None]) return {'message_tokens': message_tokens, 'answer_tokens': answer_tokens} diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index a020d7a2dec..da67d44ce1d 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -236,6 +236,7 @@ def run_block(self, language='zh'): @return: 结果 """ try: + self.params['stream'] = True self.run_chain_async(None, None, language) while self.is_run(): pass