diff --git a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py index d4bcc4f96..7e4a9a91b 100644 --- a/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py +++ b/apps/application/flow/step_node/ai_chat_step_node/impl/base_chat_node.py @@ -177,7 +177,8 @@ class BaseChatNode(IChatNode): **model_params_setting) history_message = self.get_history_message(history_chat_record, dialogue_number, dialogue_type, self.runtime_node_id) - self.context['history_message'] = history_message + self.context['history_message'] = [{'content': message.content, 'role': message.type} for message in + (history_message if history_message is not None else [])] question = self.generate_prompt_question(prompt) self.context['question'] = question.content system = self.workflow_manage.generate_prompt(system) @@ -197,8 +198,6 @@ class BaseChatNode(IChatNode): if stream: r = chat_model.stream(message_list) return NodeResult({'result': r, 'chat_model': chat_model, 'message_list': message_list, - 'history_message': [{'content': message.content, 'role': message.type} for message in - (history_message if history_message is not None else [])], 'question': question.content}, {}, _write_context=write_context_stream) else: diff --git a/apps/application/flow/workflow_manage.py b/apps/application/flow/workflow_manage.py index 839794d54..21bacb65a 100644 --- a/apps/application/flow/workflow_manage.py +++ b/apps/application/flow/workflow_manage.py @@ -153,6 +153,8 @@ class WorkflowManage: node_name = properties.get('stepName') node_id = node.id node_config = properties.get('config') + field_list.append( + {'label': '异常信息', 'value': 'exception_message', 'node_id': node_id, 'node_name': node_name}) if node_config is not None: fields = node_config.get('fields') if fields is not None: @@ -473,7 +475,12 @@ class WorkflowManage: else: list(result) if current_node.status == 500: - return None + current_node.context['exception_message'] = current_node.err_message + current_node.context['branch_id'] = 'exception' + r = NodeResult({'branch_id': 'exception', 'exception': current_node.err_message}, {}, + _is_interrupt=lambda node, step_variable, global_variable: False) + r.write_context(current_node, self) + return r return current_result except Exception as e: # 添加节点 @@ -494,7 +501,11 @@ class WorkflowManage: current_node.node_chunk.add_chunk(chunk) current_node.get_write_error_context(e) self.status = 500 - return None + current_node.context['exception_message'] = current_node.err_message + current_node.context['branch_id'] = 'exception' + return NodeResult({'branch_id': 'exception', 'exception': current_node.err_message}, {}, + _is_interrupt=lambda node, step_variable, global_variable: False) + finally: current_node.node_chunk.end() # 归还链接到连接池 diff --git a/ui/src/workflow/common/NodeContainer.vue b/ui/src/workflow/common/NodeContainer.vue index b22cd33d7..5854d2dfb 100644 --- a/ui/src/workflow/common/NodeContainer.vue +++ b/ui/src/workflow/common/NodeContainer.vue @@ -135,7 +135,8 @@ :show="showAnchor" :inner="true" :id="id" - style="left: 100%; top: 50%; transform: translate(0, -50%)" + style="left: 100%; transform: translate(0, -50%)" + :style="dropdownMenuStyle" @clickNodes="clickNodes" /> @@ -177,7 +178,7 @@