Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import spaces | |
| import subprocess | |
| import requests | |
| import datetime | |
| import os | |
| 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) | |