diff --git a/api/core/app/apps/advanced_chat/app_generator.py b/api/core/app/apps/advanced_chat/app_generator.py index a19a5c8f67..92286c9af0 100644 --- a/api/core/app/apps/advanced_chat/app_generator.py +++ b/api/core/app/apps/advanced_chat/app_generator.py @@ -54,7 +54,7 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator): inputs = args['inputs'] extras = { - "auto_generate_conversation_name": args['auto_generate_name'] if 'auto_generate_name' in args else True + "auto_generate_conversation_name": args['auto_generate_name'] if 'auto_generate_name' in args else False } # get conversation diff --git a/api/core/app/apps/advanced_chat/generate_task_pipeline.py b/api/core/app/apps/advanced_chat/generate_task_pipeline.py index c1076fa947..9c06f516a5 100644 --- a/api/core/app/apps/advanced_chat/generate_task_pipeline.py +++ b/api/core/app/apps/advanced_chat/generate_task_pipeline.py @@ -346,7 +346,7 @@ class AdvancedChatAppGenerateTaskPipeline: yield self._yield_response(response) elif isinstance(event, QueueTextChunkEvent): - delta_text = event.chunk_text + delta_text = event.text if delta_text is None: continue diff --git a/api/core/app/apps/advanced_chat/workflow_event_trigger_callback.py b/api/core/app/apps/advanced_chat/workflow_event_trigger_callback.py index 5d99ce6297..8f72305bb1 100644 --- a/api/core/app/apps/advanced_chat/workflow_event_trigger_callback.py +++ b/api/core/app/apps/advanced_chat/workflow_event_trigger_callback.py @@ -76,7 +76,7 @@ class WorkflowEventTriggerCallback(BaseWorkflowCallback): streamable_node_ids = [] end_node_ids = [] for node_config in graph.get('nodes'): - if node_config.get('type') == NodeType.END.value: + if node_config.get('data', {}).get('type') == NodeType.END.value: end_node_ids.append(node_config.get('id')) for edge_config in graph.get('edges'): diff --git a/api/core/app/apps/base_app_queue_manager.py b/api/core/app/apps/base_app_queue_manager.py index 0391599040..289567fe5d 100644 --- a/api/core/app/apps/base_app_queue_manager.py +++ b/api/core/app/apps/base_app_queue_manager.py @@ -15,6 +15,7 @@ from core.app.entities.queue_entities import ( QueueMessageEndEvent, QueuePingEvent, QueueStopEvent, + QueueWorkflowFinishedEvent, ) from extensions.ext_redis import redis_client @@ -36,7 +37,8 @@ class AppQueueManager: self._invoke_from = invoke_from user_prefix = 'account' if self._invoke_from in [InvokeFrom.EXPLORE, InvokeFrom.DEBUGGER] else 'end-user' - redis_client.setex(AppQueueManager._generate_task_belong_cache_key(self._task_id), 1800, f"{user_prefix}-{self._user_id}") + redis_client.setex(AppQueueManager._generate_task_belong_cache_key(self._task_id), 1800, + f"{user_prefix}-{self._user_id}") q = queue.Queue() @@ -106,7 +108,10 @@ class AppQueueManager: self._q.put(message) - if isinstance(event, QueueStopEvent | QueueErrorEvent | QueueMessageEndEvent): + if isinstance(event, QueueStopEvent + | QueueErrorEvent + | QueueMessageEndEvent + | QueueWorkflowFinishedEvent): self.stop_listen() if pub_from == PublishFrom.APPLICATION_MANAGER and self._is_stopped(): diff --git a/api/core/app/apps/workflow/generate_task_pipeline.py b/api/core/app/apps/workflow/generate_task_pipeline.py index df83ad634e..bcd5a4ba3d 100644 --- a/api/core/app/apps/workflow/generate_task_pipeline.py +++ b/api/core/app/apps/workflow/generate_task_pipeline.py @@ -248,7 +248,7 @@ class WorkflowAppGenerateTaskPipeline: yield self._yield_response(workflow_run_response) elif isinstance(event, QueueTextChunkEvent): - delta_text = event.chunk_text + delta_text = event.text if delta_text is None: continue diff --git a/api/core/app/apps/workflow/workflow_event_trigger_callback.py b/api/core/app/apps/workflow/workflow_event_trigger_callback.py index 3d7a4035e7..12b93518ed 100644 --- a/api/core/app/apps/workflow/workflow_event_trigger_callback.py +++ b/api/core/app/apps/workflow/workflow_event_trigger_callback.py @@ -76,7 +76,7 @@ class WorkflowEventTriggerCallback(BaseWorkflowCallback): streamable_node_ids = [] end_node_ids = [] for node_config in graph.get('nodes'): - if node_config.get('type') == NodeType.END.value: + if node_config.get('data', {}).get('type') == NodeType.END.value: if node_config.get('data', {}).get('outputs', {}).get('type', '') == 'plain-text': end_node_ids.append(node_config.get('id')) diff --git a/api/core/app/entities/queue_entities.py b/api/core/app/entities/queue_entities.py index e5c6a8eff9..38f9638eaa 100644 --- a/api/core/app/entities/queue_entities.py +++ b/api/core/app/entities/queue_entities.py @@ -48,7 +48,7 @@ class QueueTextChunkEvent(AppQueueEvent): QueueTextChunkEvent entity """ event = QueueEvent.TEXT_CHUNK - chunk_text: str + text: str class QueueAgentMessageEvent(AppQueueEvent):