server / app.py
Techbitforge's picture
Update app.py
613f6dc verified
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
)