AI-Checker / app.py
Pujan-Dev's picture
feat: updated detector using Ela fft and meta
0b8f50d
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 features.nepali_text_classifier.routes import router as nepali_text_classifier_router
from features.image_classifier.routes import router as image_classifier_router
from features.image_edit_detector.routes import router as image_edit_detector_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.include_router(nepali_text_classifier_router,prefix="/NP")
app.include_router(image_classifier_router,prefix="/AI-image")
app.include_router(image_edit_detector_router,prefix="/detect")
@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","/NP/analyse","/NP/upload","/NP/analyse-sentences","/NP/file-sentences-analyse","/AI-image/analyse"]
}