| 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() | |
| 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") | |
| async def root(): | |
| return { | |
| "status": "online", | |
| "message": "AEIS Executive Researcher API is running. Access endpoints via /api/v1", | |
| "docs": "/docs" | |
| } | |