Spaces:
Sleeping
Sleeping
File size: 1,335 Bytes
e42e330 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
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
@asynccontextmanager
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=["*"],
)
@app.get("/")
async def check_health():
return {"response": "Service is healthy!"}
app.include_router(api_router, prefix="/api")
|