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 # ========================= @app.route("/", methods=["GET"]) 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 )