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) |