Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import os | |
| import time | |
| # --- ۱. مدیریت رازها (Security/Secrets) --- | |
| API_KEY = os.environ.get("YOUR_PAID_API_KEY", "Default_Key_for_Testing") | |
| # --- ۲. کنترل هزینه (Rate Limiting/Metering) --- | |
| USAGE_TRACKER = {} | |
| MAX_REQUESTS_PER_SESSION = 5 | |
| def get_user_identifier(): | |
| # شناسه موقت برای ردیابی مصرف | |
| return "simulated_user_session" | |
| def process_data(user_input): | |
| user_id = get_user_identifier() | |
| current_usage = USAGE_TRACKER.get(user_id, 0) | |
| if current_usage >= MAX_REQUESTS_PER_SESSION: | |
| return f"🚨 سهمیه رایگان شما ({MAX_REQUESTS_PER_SESSION} درخواست) به پایان رسید. (ورودی: {user_input})" | |
| USAGE_TRACKER[user_id] = current_usage + 1 | |
| if API_KEY == "Default_Key_for_Testing": | |
| status = "حالت تست (رایگان): کلید پولی یافت نشد." | |
| else: | |
| status = f"حالت عملیاتی (پولی): کلید امن استفاده شد. (درخواست شماره {current_usage} از {MAX_REQUESTS_PER_SESSION})" | |
| return f"نتیجه پردازش: '{user_input}' | وضعیت کنترل هزینه: {status}" | |
| # --- ۳. رابط کاربری (Frontend) --- | |
| iface = gr.Interface( | |
| fn=process_data, | |
| inputs="textbox", | |
| outputs="textbox", | |
| title="سیستم اتوماتیک و امن (Manual Deployment) با کنترل هزینه (Rate Limiting)", | |
| description=f"این سیستم امن ۲۴/۷ اجرا می شود. هر کاربر فقط {MAX_REQUESTS_PER_SESSION} درخواست رایگان دارد." | |
| ) | |
| iface.launch() | |