LapStore commited on
Commit
a82c1e0
·
1 Parent(s): 4d35f36

added limit property but not applied

Browse files
__pycache__/app.cpython-311.pyc ADDED
Binary file (7.86 kB). View file
 
__pycache__/server.cpython-311.pyc ADDED
Binary file (12 kB). View file
 
app.py CHANGED
@@ -11,16 +11,41 @@ from server import *
11
  import cv2
12
  from typing import Optional
13
  import base64
 
 
 
 
14
 
15
 
16
  #http://localhost:8000
17
  app = FastAPI()
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # Root route
20
  @app.get('/')
21
  def main():
22
  return "Hello From Background remover !"
23
 
 
 
 
 
24
 
25
 
26
  @app.post('/imageStep1')
@@ -128,3 +153,6 @@ async def Video(video_file: UploadFile = File(...),background_image: Optional [U
128
  return StreamingResponse(open(output_path, "rb"), media_type="video/avi")
129
 
130
 
 
 
 
 
11
  import cv2
12
  from typing import Optional
13
  import base64
14
+ from fastapi import FastAPI, Request
15
+ from slowapi import Limiter
16
+ from slowapi.util import get_remote_address
17
+ from fastapi.responses import JSONResponse
18
 
19
 
20
  #http://localhost:8000
21
  app = FastAPI()
22
 
23
+ limiter = Limiter(key_func=get_remote_address)
24
+ app.state.limiter = limiter
25
+ # Register the Limiter with FastAPI
26
+ @app.middleware("http")
27
+ async def add_process_time_header(request: Request, call_next):
28
+ response = await call_next(request)
29
+ return response
30
+
31
+ @app.exception_handler(429)
32
+ async def rate_limit_exceeded(request: Request, exc):
33
+ return JSONResponse(
34
+ status_code=429,
35
+ content={"detail": "Too Many Requests ,please just try 3 times per hour"},
36
+ )
37
+
38
+
39
+
40
  # Root route
41
  @app.get('/')
42
  def main():
43
  return "Hello From Background remover !"
44
 
45
+ @app.post("/items")
46
+ @limiter.limit("3/hour") # must have parameter request
47
+ async def read_items(request: Request, type_of_filters: str = Form(...)):
48
+ return {"items": str(type_of_filters)}
49
 
50
 
51
  @app.post('/imageStep1')
 
153
  return StreamingResponse(open(output_path, "rb"), media_type="video/avi")
154
 
155
 
156
+ if __name__ == "__main__":
157
+ import uvicorn
158
+ uvicorn.run(app, host="0.0.0.0", port=8000)
index.html CHANGED
@@ -2,15 +2,10 @@
2
  <body bgcolor="#00cccc">
3
  <center>
4
  <br><br><br>
5
- <form action="https://taha454-backg.hf.space/Video" method="post" enctype="multipart/form-data">
6
  <p><h3>Enter Image:</h3></p>
7
  type_of_filters :<p><input type="text" name="type_of_filters" /></p><br>
8
- kind_back :<p><input type="text" name="kind_back" /></p><br>
9
- blur_radius :<p><input type="text" name="blur_radius" /></p><br>
10
- Video : <input type="file" name="video_file" required><br><br>
11
- Background_Image : <input type="file" name="background_image" ><br><br>
12
-
13
- <p><input type="submit" value="submit" /></p>
14
  </form>
15
  </center>
16
  </body>
 
2
  <body bgcolor="#00cccc">
3
  <center>
4
  <br><br><br>
5
+ <form action="http://localhost:8000/items" method="post">
6
  <p><h3>Enter Image:</h3></p>
7
  type_of_filters :<p><input type="text" name="type_of_filters" /></p><br>
8
+ <p><input type="submit" value="submit" /></p>
 
 
 
 
 
9
  </form>
10
  </center>
11
  </body>
requirements.txt CHANGED
@@ -7,5 +7,4 @@ numpy
7
  python-multipart
8
  ultralytics
9
  opencv-python
10
-
11
-
 
7
  python-multipart
8
  ultralytics
9
  opencv-python
10
+ slowapi