AI-Checker / app.py
Pujan-Dev's picture
test
6f034a7
raw
history blame
1.17 kB
from fastapi import FastAPI, Request
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.middleware import SlowAPIMiddleware
from slowapi.errors import RateLimitExceeded
from slowapi.util import get_remote_address
from fastapi.responses import JSONResponse
from features.text_classifier.routes import router as text_classifier_router
from config import ACCESS_RATE
import requests
limiter = Limiter(key_func=get_remote_address, default_limits=[ACCESS_RATE])
app = FastAPI()
# Set up SlowAPI
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, lambda request, exc: JSONResponse(
status_code=429,
content={
"status_code": 429,
"error": "Rate limit exceeded",
"message": "Too many requests. Chill for a bit and try again"
}
))
app.add_middleware(SlowAPIMiddleware)
# Include your routes
app.include_router(text_classifier_router, prefix="/text")
@app.get("/")
@limiter.limit(ACCESS_RATE)
async def root(request: Request):
return {
"message": "API is working",
"endpoints": ["/text/analyse", "/text/upload", "/text/analyse-sentences", "/text/analyse-sentance-file"]
}