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