test / app.py
fcu52005505's picture
Update app.py
447fd27 verified
import gradio as gr
import threading
import time
import requests
from OCR_test import process_image
# ====== Keep-Alive Background Thread ======
def keep_alive_worker():
# 替换为你的 HF Space 实际访问 URL(注意格式!)
space_url = "https://fcu52005505-test.hf.space"
interval_sec = 86400 # 1 分钟 = 60 秒
print(f"[Keep-Alive] Starting background pinger. Pinging {space_url} every {interval_sec} seconds...")
while True:
try:
# 发送 HEAD 请求(轻量,不下载内容)
response = requests.head(space_url, timeout=10)
status = response.status_code
print(f"[Keep-Alive] Pinged at {time.strftime('%Y-%m-%d %H:%M:%S')} | Status: {status}")
except Exception as e:
print(f"[Keep-Alive] ⚠️ Ping failed at {time.strftime('%Y-%m-%d %H:%M:%S')}: {e}")
time.sleep(interval_sec)
# 启动后台线程(daemon=True 保证主线程退出时它也退出)
threading.Thread(target=keep_alive_worker, daemon=True).start()
# ====== OCR Inference Function ======
def detect_objects(image):
try:
if image is None:
return "Error: No image uploaded."
# Call the `process_image` function with the image path
result = process_image(image)
return result
except Exception as e:
return f"Error: {e}"
# ====== Gradio Interface ======
interface = gr.Interface(
fn=detect_objects,
inputs=gr.Image(type="filepath", label="Upload Image"),
outputs=gr.Textbox(label="Detection Results"),
title="OCR Detection",
description="Upload an image to get OCR results.",
examples=[
# 可选:添加示例图片路径(若你有放在 Space repo 的 example_images/)
# ["example_images/sample1.jpg"]
]
)
# ====== Launch ======
if __name__ == "__main__":
# 注意:HF Spaces 会忽略 `server_name` 和 `server_port`
interface.launch()