from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import settings @asynccontextmanager async def lifespan(app: FastAPI): from alembic import command from alembic.config import Config alembic_cfg = Config("alembic.ini") command.upgrade(alembic_cfg, "head") yield def create_app() -> FastAPI: app = FastAPI( title="AI Assistant API", version="0.1.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=settings.BACKEND_CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) from app.api.v1.router import api_v1_router app.include_router(api_v1_router) return app app = create_app()