44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Agenten Plattform
 | |
| #
 | |
| # (c) 2024 Magnus Bender
 | |
| # 	Institute of Humanities-Centered Artificial Intelligence (CHAI)
 | |
| # 	Universitaet Hamburg
 | |
| # 	https://www.chai.uni-hamburg.de/~bender
 | |
| #  
 | |
| # source code released under the terms of GNU Public License Version 3
 | |
| # https://www.gnu.org/licenses/gpl-3.0.txt
 | |
| 
 | |
| from fastapi import BackgroundTasks
 | |
| 
 | |
| from ums.management.db import DB
 | |
| 
 | |
| from ums.utils import AgentMessage, AgentResponse
 | |
| 
 | |
| class MessageProcessor():
 | |
| 
 | |
| 	def __init__(self, db:DB):
 | |
| 		self.db = db
 | |
| 
 | |
| 	def new_message(self,
 | |
| 		sender:str, receiver:str, message:AgentMessage,
 | |
| 		background_tasks: BackgroundTasks
 | |
| 	) -> AgentResponse:
 | |
| 
 | |
| 		try:
 | |
| 			db_count = self.db.add_message(sender, receiver, message)
 | |
| 			background_tasks.add_task(self._process_message, db_count)
 | |
| 
 | |
| 			return AgentResponse(
 | |
| 				count=db_count,
 | |
| 				msg="Added message to queue"
 | |
| 			)
 | |
| 		except Exception as e:
 | |
| 			return AgentResponse(
 | |
| 				count=-1,
 | |
| 				error=True,
 | |
| 				error_msg=str(e)
 | |
| 			)
 | |
| 
 | |
| 	def _process_message(self, count:int):
 | |
| 		# TODO !!!
 | |
| 		self.db.set_processed(count=count, processed=True) |