Spaces:
Sleeping
Sleeping
| import os | |
| from dotenv import load_dotenv | |
| # =========================== | |
| # !!! ATTENTION !!! | |
| # KEEP THIS AT THE TOP TO ENSURE ENVIRONMENT VARIABLES ARE LOADED BEFORE ANY IMPORTS | |
| # =========================== | |
| load_dotenv() | |
| import os | |
| from contextlib import asynccontextmanager | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from loguru import logger | |
| from src.controllers import api_router | |
| from src.utils import model_manager | |
| async def lifespan(app: FastAPI): | |
| try: | |
| logger.info("Starting up the application...") | |
| await model_manager.ensure_models_loaded() | |
| logger.info("Application started successfully...") | |
| yield | |
| except Exception as e: | |
| logger.error(f"Error during startup: {str(e)}") | |
| raise | |
| finally: | |
| logger.info("Application shutdown complete.") | |
| app = FastAPI(lifespan=lifespan) | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=[ | |
| origin.strip() | |
| for origin in os.getenv( | |
| "CORS_ALLOW_ORIGINS", "http://localhost, http://127.0.0.1" | |
| ).split(",") | |
| ], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| async def check_health(): | |
| return {"response": "Service is healthy!"} | |
| app.include_router(api_router, prefix="/api") | |