main.py 644 B

12345678910111213141516171819202122232425262728293031
  1. from __future__ import annotations
  2. from functools import lru_cache
  3. from fastapi import FastAPI
  4. from app.config import get_settings
  5. from app.schemas import QueryRequest, QueryResponse
  6. from app.service import AgenticRAGService
  7. app = FastAPI(
  8. title="Agentic RAG Course Project",
  9. version="1.0.0",
  10. )
  11. @lru_cache(maxsize=1)
  12. def get_service() -> AgenticRAGService:
  13. return AgenticRAGService(get_settings())
  14. @app.get("/health")
  15. def health() -> dict[str, str]:
  16. return {"status": "ok"}
  17. @app.post("/query", response_model=QueryResponse)
  18. def query(request: QueryRequest) -> QueryResponse:
  19. return get_service().invoke(request)