from slowapi import Limiter from config import ACCESS_RATE from .controller import nepali_text_analysis from .inferencer import classify_text from fastapi import APIRouter, Request, Depends, HTTPException from fastapi.security import HTTPBearer from slowapi import Limiter from slowapi.util import get_remote_address from pydantic import BaseModel router = APIRouter() limiter = Limiter(key_func=get_remote_address) security = HTTPBearer() # Input schema class TextInput(BaseModel): text: str @router.post("/analyse") @limiter.limit(ACCESS_RATE) async def analyse(request: Request, data: TextInput, token: str = Depends(security)): # Token is available as `token.credentials`, add validation if needed result = classify_text(data.text) return result @router.get("/health") @limiter.limit(ACCESS_RATE) def health(request: Request): return {"status": "ok"}