Spaces:
Running
Running
File size: 1,707 Bytes
31db1d3 613f6dc 31db1d3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
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
)
|