import asyncio import os import uvicorn from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse from pydantic import BaseModel from caesarinfer import CaesarNL app = FastAPI() CURRENT_DIR = os.path.realpath(__file__).replace(f"/main.py","") app.add_middleware( CORSMiddleware, allow_origins=["*"], # can alter with time allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) class CaesarAINLModel(BaseModel): caesarapi: str @app.get("/") def caesarhome(): return "Caeser: How can I help you sir?" @app.get("/caesarapi") def caesarapiget(): return "Caeser: Hello sir, this is the CaesarAIAPI" @app.post("/caesarapi") def caesarapi(caesarapijson: CaesarAINLModel): try: caesarapijson = dict(caesarapijson) print("Caesar Processing...") caesarResponse,intents = CaesarNL.run([caesarapijson["caesarapi"]]) print("Caesar Processed.") print(caesarResponse,"intent:",intents) return {"caesarmessage":{"caesarResponse":caesarResponse,"intent":intents}} except Exception as ex: return {"error":f"{type(ex)}-{ex}"} async def main(): config = uvicorn.Config("main:app", port=7860, log_level="info",host="0.0.0.0",reload=True) server = uvicorn.Server(config) await server.serve() if __name__ == "__main__": asyncio.run(main())