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 85b00a98fd..a760934020 100644 --- a/api/core/app/apps/advanced_chat/generate_task_pipeline.py +++ b/api/core/app/apps/advanced_chat/generate_task_pipeline.py @@ -172,6 +172,14 @@ class AdvancedChatAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCyc break elif isinstance(event, QueueWorkflowStartedEvent): workflow_run = self._handle_workflow_start() + + self._message = db.session.query(Message).filter(Message.id == self._message.id).first() + self._message.workflow_run_id = workflow_run.id + + db.session.commit() + db.session.refresh(self._message) + db.session.close() + yield self._workflow_start_to_stream_response( task_id=self._application_generate_entity.task_id, workflow_run=workflow_run @@ -276,7 +284,6 @@ class AdvancedChatAppGenerateTaskPipeline(BasedGenerateTaskPipeline, WorkflowCyc self._message.answer = self._task_state.answer self._message.provider_response_latency = time.perf_counter() - self._start_at - self._message.workflow_run_id = self._task_state.workflow_run_id if self._task_state.metadata and self._task_state.metadata.get('usage'): usage = LLMUsage(**self._task_state.metadata['usage']) diff --git a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py index 660011a082..ef6b399aab 100644 --- a/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py +++ b/api/core/workflow/nodes/variable_assigner/variable_assigner_node.py @@ -17,12 +17,7 @@ class VariableAssignerNode(BaseNode): outputs = {} for variable in node_data.variables: value = variable_pool.get_variable_value(variable) - if value: - variable_pool.append_variable( - node_id=self.node_id, - variable_key_list=variable, - value=value - ) + if value is not None: outputs = { "output": value }