Spaces:
Running
Running
| from flask import Flask, request, Response, jsonify | |
| import requests | |
| import threading | |
| import time | |
| import random | |
| import logging | |
| from typing import Optional | |
| app = Flask(__name__) | |
| # ========================= | |
| # CONFIG | |
| # ========================= | |
| Server = [ | |
| "https://techbitforge-webui.hf.space/api/models", | |
| "https://techbitforge-hello-server.hf.space" | |
| ] | |
| PING_INTERVAL = 120 | |
| REQUEST_TIMEOUT = 300 | |
| # ========================= | |
| # LOGGING | |
| # ========================= | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(asctime)s β %(levelname)s β %(message)s" | |
| ) | |
| logger = logging.getLogger("proxy") | |
| # ========================= | |
| # HEALTH CHECK | |
| # ========================= | |
| def home(): | |
| return jsonify({"status": "running", "service": "HF Proxy"}) | |
| # ========================= | |
| # KEEP ALIVE PINGER | |
| # ========================= | |
| HEADERS = {"User-Agent": "HF-Proxy-KeepAliveBot"} | |
| def keep_alive_worker(): | |
| while True: | |
| logger.info("Pinging HF servers...") | |
| for url in Server: | |
| try: | |
| r = requests.get(url, headers=HEADERS, timeout=8) | |
| logger.info(f"{url} β {r.status_code}") | |
| except Exception as e: | |
| logger.warning(f"{url} β ERROR: {e}") | |
| time.sleep(PING_INTERVAL) | |
| def start_background_thread(): | |
| thread = threading.Thread(target=keep_alive_worker, daemon=True) | |
| thread.start() | |
| logger.info("Background keep-alive thread started") | |
| # ========================= | |
| # MAIN | |
| # ========================= | |
| if __name__ == "__main__": | |
| start_background_thread() | |
| app.run( | |
| host="0.0.0.0", | |
| port=7860, | |
| threaded=True, | |
| debug=False | |
| ) | |