peft-bench-eval / app.py
Mdrnfox's picture
Update app.py
562f2a9 verified
import gradio as gr
import spaces
import subprocess
import requests
import datetime
import os
@spaces.GPU
def run_peft_eval():
print("Starting evaluation...", flush=True)
try:
process = subprocess.Popen(
["python3", "run_eval.py"],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True,
)
log_lines = []
for line in process.stdout:
print(line, end='', flush=True)
log_lines.append(line)
process.wait()
if process.returncode != 0:
return "Evaluation failed. See logs above."
except Exception as e:
print("Eval script failed:", e, flush=True)
return "Evaluation failed. Check logs."
# Optional shutdown trigger (Spaces-only feature)
try:
shutdown_url = os.environ.get("HF_ENDPOINT_SHUTDOWN")
if shutdown_url:
print("Triggering shutdown...", flush=True)
requests.post(shutdown_url)
except Exception as e:
print("Shutdown failed:", e, flush=True)
return f"✅ PEFT-Bench completed at {datetime.datetime.utcnow():%Y-%m-%d %H:%M UTC}"
with gr.Blocks() as demo:
gr.Markdown("### PEFT-Bench GPU Evaluator")
gr.Markdown("Click the button below to run `run_eval.py`. The Space will automatically shut down when complete.")
status = gr.Textbox(label="Status", lines=2)
btn = gr.Button("Start Evaluation")
btn.click(fn=run_peft_eval, outputs=status)
demo.launch(show_error=True)