from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from src.analysis.rag_pipeline import NewsAnalysisPipeline from src.api import routes @asynccontextmanager async def lifespan(app: FastAPI): print("Loading pipeline at startup...") app.state.pipeline = NewsAnalysisPipeline() print("Pipeline ready.") yield print("Shutting down.") app = FastAPI( title="NewsLens API", description="Bias analysis for news articles", version="1.0.0", lifespan=lifespan ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(routes.router)