import logging from app.api.api_v1.api import api_router from app.api.openapi.api import router as openapi_router from app.core.config import settings from app.core.minio import init_minio from app.core.runtime_checks import validate_runtime_settings from app.startup.migarate import DatabaseMigrator from fastapi import FastAPI logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) app = FastAPI( title=settings.PROJECT_NAME, version=settings.VERSION, openapi_url=f"{settings.API_V1_STR}/openapi.json", ) # Include routers app.include_router(api_router, prefix=settings.API_V1_STR) app.include_router(openapi_router, prefix="/openapi") @app.on_event("startup") async def startup_event(): validate_runtime_settings(settings) # Initialize MinIO init_minio() # Run database migrations migrator = DatabaseMigrator(settings.get_database_url) migrator.run_migrations() @app.get("/") def root(): return {"message": "Welcome to RAG Web UI API"} @app.get("/api/health") async def health_check(): return { "status": "healthy", "version": settings.VERSION, }