import os from fastapi import FastAPI, Depends from fastapi.middleware.cors import CORSMiddleware from backend.app.routes import users_route, events_route, travels_route from backend.app.helper.security import get_api_key from backend.app.config import get_settings from backend.app.routes import chatbot_route settings = get_settings() app = FastAPI( title="AI API", description="API for AI micro services", version="1.0.0" ) # Add CORS middleware app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Add health check endpoint @app.get("/") async def root(): return {"status": "alive", "message": "API is running"} # avoiding the conflictions os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' @app.on_event("startup") async def startup_event(): print("Application startup...") # asyncio.create_task(run_embedding_worker_loop(interval_seconds=30)) @app.on_event("shutdown") async def shutdown_event(): print("Application shutdown...") users_route.user_db.db.close() events_route.event_db.db.close() travels_route.travel_db.db.close() # Include routers with API key dependency app.include_router( events_route.router, prefix="/events", tags=["events"], dependencies=[Depends(get_api_key)] ) app.include_router( travels_route.router, prefix="/travels", tags=["travels"], dependencies=[Depends(get_api_key)] ) app.include_router( users_route.router, prefix="/users", tags=["users"], dependencies=[Depends(get_api_key)] ) app.include_router( chatbot_route.router, prefix="/chatbot", tags=["chatbot"], dependencies=[Depends(get_api_key)] )