from fastapi import FastAPI from pydantic import BaseModel import sys import os # allow importing from src sys.path.append(os.path.abspath("src")) from query_engine import QueryEngine app = FastAPI() engine = QueryEngine() class QueryRequest(BaseModel): query: str top_k: int = 5 @app.get("/") def home(): return {"message": "Semantic Search Cache API running"} @app.post("/query") def search(request: QueryRequest): result = engine.search(request.query, request.top_k) return result @app.get("/cache/stats") def cache_stats(): return engine.cache_stats() @app.delete("/cache") def clear_cache(): engine.clear_cache() return {"message": "Cache cleared"}