# 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 import os from fastapi import FastAPI, Request, BackgroundTasks from fastapi.staticfiles import StaticFiles from fastapi.responses import JSONResponse from ums.agent.process import MessageProcessor from ums.utils import AgentMessage, AgentResponse, const class WebMain(): def __init__(self): self.msg_process = MessageProcessor() self._init_app() self._add_routes() def _init_app(self): self.app = FastAPI( title="Agenten Plattform", description="Agenten Plattform – Agent", openapi_url="/api/schema.json", docs_url='/api', redoc_url=None ) self.app.mount( "/static", StaticFiles(directory=os.path.join(const.PUBLIC_PATH, 'static')), name="static" ) self.app.mount( "/docs", StaticFiles(directory=os.path.join(const.PUBLIC_PATH, 'docs'), html=True), name="docs" ) def _add_routes(self): @self.app.get("/", response_class=JSONResponse, summary="Link list") def index(): return { "title" : "Agenten Plattform – Agent", "./message" : "Messaged from the Management", "./api" : "API Overview", "./docs" : "Documentation" } @self.app.post("/message", summary="Send a message to this agent") def message(request: Request, message:AgentMessage, background_tasks: BackgroundTasks) -> AgentResponse: return self.msg_process.new_message(message, background_tasks) if __name__ == "ums.agent.main" and os.environ.get('SERVE', 'false') == 'true': main = WebMain() app = main.app