Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import os | |
| import time | |
| from datetime import datetime | |
| import pandas as pd | |
| # Handle missing plotly dependency | |
| try: | |
| import plotly.express as px | |
| except ImportError: | |
| px = None | |
| def set_page_config(): | |
| """Set the page configuration with title and layout.""" | |
| st.set_page_config( | |
| page_title="CodeGen Hub", | |
| page_icon="💻", | |
| layout="wide", | |
| initial_sidebar_state="expanded" | |
| ) | |
| def display_sidebar(): | |
| """Display sidebar with navigation options.""" | |
| st.sidebar.title("CodeGen Hub") | |
| st.sidebar.markdown("---") | |
| st.sidebar.subheader("Navigation") | |
| st.sidebar.markdown(""" | |
| - [Home](/) | |
| - [Dataset Management](/Dataset_Management) | |
| - [Model Training](/Model_Training) | |
| - [Code Generation](/Code_Generation) | |
| """) | |
| st.sidebar.markdown("---") | |
| st.sidebar.subheader("Resources") | |
| st.sidebar.markdown(""" | |
| - [Hugging Face Hub](https://huggingface.co/models) | |
| - [Transformers Documentation](https://huggingface.co/docs/transformers/index) | |
| - [Streamlit Documentation](https://docs.streamlit.io/) | |
| """) | |
| st.sidebar.markdown("---") | |
| st.sidebar.caption("© 2023 CodeGen Hub") | |
| def timestamp(): | |
| """Return a formatted timestamp for logging.""" | |
| return datetime.now().strftime("%Y-%m-%d %H:%M:%S") | |
| def add_log(message, log_type="INFO"): | |
| """Add a log message to the training logs.""" | |
| log_entry = f"[{timestamp()}] [{log_type}] {message}" | |
| if 'training_logs' not in st.session_state: | |
| st.session_state.training_logs = [] | |
| st.session_state.training_logs.append(log_entry) | |
| return log_entry | |
| def display_logs(): | |
| """Display the training logs in a text area.""" | |
| if 'training_logs' in st.session_state and st.session_state.training_logs: | |
| logs = '\n'.join(st.session_state.training_logs) | |
| st.text_area('Training Logs', logs, height=300) | |
| else: | |
| st.text_area('Training Logs', 'No logs available.', height=300) | |
| def plot_training_progress(model_id): | |
| """Plot training progress for a model.""" | |
| if 'training_progress' in st.session_state and model_id in st.session_state.training_progress: | |
| progress = st.session_state.training_progress[model_id] | |
| if 'loss_history' in progress and progress['loss_history']: | |
| # Create DataFrame for plotting | |
| df = pd.DataFrame({ | |
| 'Step': list(range(1, len(progress['loss_history']) + 1)), | |
| 'Loss': progress['loss_history'] | |
| }) | |
| if px is not None: | |
| # Create plot with plotly if available | |
| fig = px.line(df, x='Step', y='Loss', title=f'Training Loss for {model_id}') | |
| fig.update_layout(height=400) | |
| st.plotly_chart(fig, use_container_width=True) | |
| else: | |
| # Fallback to simple display without plotly | |
| st.subheader(f"Training Loss for {model_id}") | |
| st.dataframe(df) | |
| st.info("Install plotly for interactive charts") | |
| else: | |
| st.info("No training progress data available yet.") | |
| else: | |
| st.info("No training progress data available for this model.") | |
| def format_code(code): | |
| """Format code for display.""" | |
| return code.strip() | |
| def create_folder_if_not_exists(folder_path): | |
| """Create folder if it doesn't exist.""" | |
| if not os.path.exists(folder_path): | |
| os.makedirs(folder_path) | |
| return True | |
| return False | |