import gradio as gr import spaces import subprocess import os # 1. Wrap the execution in a function tagged with @spaces.GPU @spaces.GPU(duration=120) # Requests maximum GPU execution time def run_training(): print("--- STARTING TRAINING RUN ---") try: # 2. This triggers your custom train.py script on the GPU backend result = subprocess.run( ["python", "train.py"], capture_output=True, text=True, check=True ) return f"Training Complete! Logs:\n\n{result.stdout}" except subprocess.CalledProcessError as e: return f"Training Failed! Error Logs:\n\n{e.stderr}" # 3. Create a simple single-button interface to click and launch it with gr.Blocks() as demo: gr.Markdown("# Luau AI Training Dashboard") train_btn = gr.Button("🚀 Start Fine-Tuning Script") output_logs = gr.Textbox(label="Console Outputs", lines=20) train_btn.click(fn=run_training, outputs=output_logs) demo.launch()