import gradio as gr import subprocess def train_model(): # Run the training script process = subprocess.Popen( ["python", "train_model.py"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, bufsize=1 ) logs = "" for line in process.stdout: logs += line yield logs # Return final download link logs += "\nāœ… Training complete! Download your model below." yield logs with gr.Blocks() as demo: gr.Markdown("🧠 *Quiz Model Trainer*\nClick start to train and download your model.") train_button = gr.Button("šŸš€ Start Training") output = gr.Textbox(label="Training Log", lines=20) file_output = gr.File(label="Download Trained Model") def start_training(): logs = "" for log in train_model(): logs = log yield logs, None # Attach zip file after training yield logs, "trained_model.zip" train_button.click(start_training, outputs=[output, file_output]) demo.launch()