Cognitive-rag / server.py
server.py
Raw
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}