Spaces:
Runtime error
Runtime error
from fastapi import FastAPI, Request | |
from fastapi.responses import JSONResponse | |
from slowapi import Limiter, _rate_limit_exceeded_handler | |
from slowapi.util import get_remote_address | |
from slowapi.errors import RateLimitExceeded | |
import logging | |
import os | |
def get_rate_limit(): | |
return os.getenv("RATE_LIMIT", "100/minute") | |
limiter = Limiter(key_func=get_remote_address, headers_enabled=True, default_limits=[get_rate_limit()]) | |
def setup_middlewares(app: FastAPI): | |
async def unhandled_exception_handler(request: Request, exc: Exception): | |
logging.exception(f"Unhandled exception from {request.client.host}") | |
return JSONResponse(status_code=500, content={"detail": "Internal server error"}) | |
app.state.limiter = limiter | |
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler) | |