Spaces:
Runtime error
Runtime error
| import json | |
| import time | |
| import gradio as gr | |
| from web.utils.monitor import TrainingMonitor | |
| from web.train_tab import create_train_tab | |
| from web.eval_tab import create_eval_tab | |
| from web.download_tab import create_download_tab | |
| from web.predict_tab import create_predict_tab | |
| from web.manual_tab import create_manual_tab | |
| def load_constant(): | |
| """Load constant values from config files""" | |
| try: | |
| return json.load(open("src/constant.json")) | |
| except Exception as e: | |
| return {"error": f"Failed to load constant.json: {str(e)}"} | |
| def create_ui(): | |
| monitor = TrainingMonitor() | |
| constant = load_constant() | |
| def update_output(): | |
| try: | |
| if monitor.is_training: | |
| messages = monitor.get_messages() | |
| loss_plot = monitor.get_loss_plot() | |
| metrics_plot = monitor.get_metrics_plot() | |
| return messages, loss_plot, metrics_plot | |
| else: | |
| if monitor.error_message: | |
| return f"Training stopped with error:\n{monitor.error_message}", None, None | |
| return "Click Start to begin training!", None, None | |
| except Exception as e: | |
| return f"Error in UI update: {str(e)}", None, None | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# VenusFactory") | |
| # Create tabs | |
| with gr.Tabs(): | |
| try: | |
| train_components = {"output_text": None, "loss_plot": None, "metrics_plot": None} | |
| train_tab = create_train_tab(constant) | |
| if train_components["output_text"] is not None and train_components["loss_plot"] is not None and train_components["metrics_plot"] is not None: | |
| train_components["output_text"] = train_tab["output_text"] | |
| train_components["loss_plot"] = train_tab["loss_plot"] | |
| train_components["metrics_plot"] = train_tab["metrics_plot"] | |
| eval_components = create_eval_tab(constant) | |
| predict_components = create_predict_tab(constant) | |
| download_components = create_download_tab(constant) | |
| manual_components = create_manual_tab(constant) | |
| except Exception as e: | |
| gr.Markdown(f"Error creating UI components: {str(e)}") | |
| train_components = {"output_text": None, "loss_plot": None, "metrics_plot": None} | |
| if train_components["output_text"] is not None and train_components["loss_plot"] is not None and train_components["metrics_plot"] is not None: | |
| demo.load( | |
| fn=update_output, | |
| inputs=None, | |
| outputs=[ | |
| train_components["output_text"], | |
| train_components["loss_plot"], | |
| train_components["metrics_plot"] | |
| ] | |
| ) | |
| return demo | |
| if __name__ == "__main__": | |
| try: | |
| demo = create_ui() | |
| demo.launch(server_name="0.0.0.0", share=True, allowed_paths=["img"]) | |
| except Exception as e: | |
| print(f"Failed to launch UI: {str(e)}") |