|
|
import gradio as gr |
|
|
import os |
|
|
import time |
|
|
from collections import defaultdict |
|
|
|
|
|
|
|
|
token = os.environ["TOKEN"] |
|
|
model = os.environ["MODEL"] |
|
|
|
|
|
|
|
|
request_log = defaultdict(list) |
|
|
|
|
|
def rate_limited_wrapper(*args, **kwargs): |
|
|
user_identifier = "user_ip_placeholder" |
|
|
current_time = time.time() |
|
|
|
|
|
|
|
|
request_log[user_identifier] = [t for t in request_log[user_identifier] if current_time - t < 60] |
|
|
|
|
|
|
|
|
if len(request_log[user_identifier]) >= 5: |
|
|
return "Rate limit exceeded. Please try again later." |
|
|
|
|
|
|
|
|
request_log[user_identifier].append(current_time) |
|
|
|
|
|
|
|
|
return demo(*args, **kwargs) |
|
|
|
|
|
|
|
|
demo = gr.load(model, src="spaces", token=token) |
|
|
|
|
|
|
|
|
demo.launch( |
|
|
show_api=False, |
|
|
show_error=False, |
|
|
quiet=True, |
|
|
debug=False |
|
|
) |