| import gradio as gr |
|
|
| from ml_tabular.service import TabularMLService |
|
|
|
|
| service = TabularMLService() |
|
|
|
|
| def train_model(file_obj, target_column, task_type, test_size, random_state): |
| file_path = getattr(file_obj, "name", file_obj) |
| return service.run(file_path, target_column, task_type, float(test_size), int(random_state)) |
|
|
|
|
| with gr.Blocks( |
| title="Machine Learning Tabular Lab", |
| theme=gr.themes.Soft(primary_hue="green", secondary_hue="gray"), |
| ) as demo: |
| gr.Markdown( |
| """ |
| # Machine Learning Tabular Lab |
| Upload a CSV dataset, choose the target column, and train a classic machine learning model on free CPU. |
| """ |
| ) |
|
|
| dataset_input = gr.File(label="CSV Dataset", file_types=[".csv"]) |
| target_input = gr.Textbox(label="Target Column", placeholder="target") |
| task_input = gr.Dropdown( |
| choices=["Auto", "Classification", "Regression"], |
| value="Auto", |
| label="Task Type", |
| ) |
|
|
| with gr.Row(): |
| test_size_input = gr.Slider(0.1, 0.4, value=0.2, step=0.05, label="Test Split") |
| random_state_input = gr.Slider(1, 999, value=42, step=1, label="Random State") |
|
|
| run_button = gr.Button("Train Model", variant="primary") |
|
|
| model_output = gr.Textbox(label="Selected Model", lines=1) |
| metric_output = gr.Textbox(label="Metrics", lines=6) |
| preview_output = gr.Textbox(label="Feature Preview", lines=8) |
| status_output = gr.Textbox(label="Status", lines=3) |
|
|
| run_button.click( |
| fn=train_model, |
| inputs=[dataset_input, target_input, task_input, test_size_input, random_state_input], |
| outputs=[model_output, metric_output, preview_output, status_output], |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| demo.launch() |
|
|