import logging import uvicorn from fastapi import APIRouter, FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse from fastapi.staticfiles import StaticFiles from app.modules.querySearch.routes.querySearch_route import ( router as query_search_routes, ) from app.modules.uploadDocument.routes.uploadDocument_route import ( router as upload_file_routes, ) app = FastAPI() origins = [ "http://localhost:8000", "http://localhost:3000", "https://your-space-name.hf.space", "localhost:8000", "https://abadesalex-docurag.hf.space/api", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app_router = APIRouter(prefix="/api") app_router.include_router(upload_file_routes, prefix="/upload", tags=["upload"]) app_router.include_router(query_search_routes, prefix="/query", tags=["query"]) @app_router.get("/") async def root(): return {"message": "Hello World"} # Serve static files from the 'out/_next/static' directory app.mount("/_next/static", StaticFiles(directory="app/out/_next/static"), name="static") # Serve the main index.html @app.get("/") def read_root(): return FileResponse("app/out/index.html") @app.on_event("startup") async def startup_event(): logging.info("Application is starting up...") @app.on_event("shutdown") async def shutdown_event(): logging.info("Application is shutting down...") app.include_router(app_router)