Gradii commited on
Commit
a5c8ff6
·
1 Parent(s): a4eee2b

limiter fix

Browse files
Files changed (1) hide show
  1. backend/app/api/routes.py +7 -1
backend/app/api/routes.py CHANGED
@@ -1,5 +1,6 @@
1
  import logging
2
  from fastapi import APIRouter, HTTPException, Request, status
 
3
 
4
  from app.models.schemas import (
5
  AnalysisRequest,
@@ -120,10 +121,15 @@ async def get_discord_guild_config(guild_id: str):
120
  tags=["Analysis"],
121
  summary="Analyze content for deepfake detection",
122
  )
123
- @limiter.limit("1/5seconds")
124
  async def analyze(request: Request, payload: AnalysisRequest) -> AnalysisResponse:
125
  guild_id = payload.guild_id
126
 
 
 
 
 
 
 
127
  if isinstance(payload, TextAnalysisRequest):
128
  content_type = "text"
129
  elif isinstance(payload, ImageAnalysisRequest):
 
1
  import logging
2
  from fastapi import APIRouter, HTTPException, Request, status
3
+ from slowapi.errors import RateLimitExceeded
4
 
5
  from app.models.schemas import (
6
  AnalysisRequest,
 
121
  tags=["Analysis"],
122
  summary="Analyze content for deepfake detection",
123
  )
 
124
  async def analyze(request: Request, payload: AnalysisRequest) -> AnalysisResponse:
125
  guild_id = payload.guild_id
126
 
127
+ try:
128
+ limiter.try_increment(f"analyze:{guild_id}", "1/5seconds")
129
+ except RateLimitExceeded:
130
+ raise HTTPException(status_code=429, detail="Rate limit exceeded for this guild")
131
+
132
+
133
  if isinstance(payload, TextAnalysisRequest):
134
  content_type = "text"
135
  elif isinstance(payload, ImageAnalysisRequest):