from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from dotenv import load_dotenv from contextlib import asynccontextmanager from app.api.v1_endpoints import router from app.db.qdrant_client import init_qdrant from app.observability import setup_observability load_dotenv() setup_observability() @asynccontextmanager async def lifespan(app: FastAPI): # Startup init_qdrant() yield # Shutdown (optional cleanup here) app = FastAPI( title="Agentic Research Engine", version="2.0", lifespan=lifespan, ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(router, prefix="/api/v1") @app.get("/") async def root(): return { "status": "online", "message": "AEIS Executive Researcher API is running. Access endpoints via /api/v1", "docs": "/docs" }