import sys from pathlib import Path from fastapi import FastAPI from pydantic import BaseModel from fastapi.middleware.cors import CORSMiddleware from pipeline_runner import run_query # Ensure the 01_data_ingestion package is importable sys.path.insert(0, str(Path(__file__).resolve().parent / "01_data_ingestion")) from ingestion.api import router as ingestion_router app = FastAPI() # CORS lets the browser (Lovable) call your API. # For beta/demo, allow all. Later you can restrict to your domain. app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(ingestion_router) class QueryRequest(BaseModel): query: str @app.get("/health") def health(): return {"ok": True} @app.post("/query") def query_endpoint(req: QueryRequest): output = run_query(req.query) return {"query": req.query, "output": output}