| 
					
				 | 
			
			
				@@ -153,27 +153,12 @@ class OpsTraceManager: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_ops_trace_instance( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         cls, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         app_id: Optional[Union[UUID, str]] = None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        message_id: Optional[str] = None, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        conversation_id: Optional[str] = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Get ops trace through model config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :param app_id: app_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :param message_id: message_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        :param conversation_id: conversation_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         :return: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if conversation_id is not None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            conversation_data: Conversation = db.session.query(Conversation).filter( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Conversation.id == conversation_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if conversation_data: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                app_id = conversation_data.app_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if message_id is not None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            record: Message = db.session.query(Message).filter(Message.id == message_id).first() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            app_id = record.app_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if isinstance(app_id, UUID): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             app_id = str(app_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -297,6 +282,8 @@ class TraceTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.kwargs = kwargs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.file_base_url = os.getenv("FILES_URL", "http://127.0.0.1:5001") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.app_id = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def execute(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.preprocess() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -667,13 +654,11 @@ trace_manager_batch_size = int(os.getenv("TRACE_QUEUE_MANAGER_BATCH_SIZE", 100)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class TraceQueueManager: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def __init__(self, app_id=None, conversation_id=None, message_id=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def __init__(self, app_id=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         global trace_manager_timer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.app_id = app_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.conversation_id = conversation_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.message_id = message_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.trace_instance = OpsTraceManager.get_ops_trace_instance(app_id, conversation_id, message_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.trace_instance = OpsTraceManager.get_ops_trace_instance(app_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.flask_app = current_app._get_current_object() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if trace_manager_timer is None: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.start_timer() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -683,6 +668,7 @@ class TraceQueueManager: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         global trace_manager_queue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if self.trace_instance: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                trace_task.app_id = self.app_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 trace_manager_queue.put(trace_task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logging.debug(f"Error adding trace task: {e}") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -721,9 +707,7 @@ class TraceQueueManager: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for task in tasks: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 trace_info = task.execute() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 task_data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "app_id": self.app_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "conversation_id": self.conversation_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "message_id": self.message_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "app_id": task.app_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     "trace_info_type": type(trace_info).__name__, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     "trace_info": trace_info.model_dump() if trace_info else {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 |