Spaces:
Running
Running
| """ | |
| Main entry point for the Model Capability Leaderboard application. | |
| """ | |
| import streamlit as st | |
| # Import configuration | |
| from src.utils.config import app_config, metrics_config | |
| # Import data functions | |
| from src.utils.data_loader import ( | |
| load_metric_data, | |
| process_data, | |
| filter_and_prepare_data, | |
| format_display_dataframe | |
| ) | |
| # Import styles | |
| from src.styles.base import load_all_styles | |
| # Import components | |
| from src.components.header import render_page_header, render_footer | |
| from src.components.filters import ( | |
| initialize_session_state, | |
| render_metric_selection, | |
| render_task_selection, | |
| render_model_type_selection | |
| ) | |
| from src.components.leaderboard import render_leaderboard_table, render_empty_state | |
| from src.components.tasks import render_task_descriptions | |
| def setup_page(): | |
| """ | |
| Set up the Streamlit page configuration | |
| """ | |
| st.set_page_config( | |
| page_title=app_config['title'], | |
| layout=app_config['layout'], | |
| initial_sidebar_state=app_config['initial_sidebar_state'] | |
| ) | |
| # Load all styles | |
| load_all_styles() | |
| def main(): | |
| """ | |
| Main application function | |
| """ | |
| # Set up page | |
| setup_page() | |
| # Render header | |
| render_page_header() | |
| # Load data | |
| current_metric = list(metrics_config.keys())[0] | |
| metric_data = load_metric_data(metrics_config[current_metric]["file"]) | |
| df = process_data(metric_data) | |
| # Initialize session state | |
| initialize_session_state(df) | |
| # Create tabs | |
| tabs = st.tabs(["π Leaderboard", "π Benchmark Details"]) | |
| # Tab 1: Leaderboard | |
| with tabs[0]: | |
| # Render filter components | |
| selected_metric = render_metric_selection() | |
| selected_tasks = render_task_selection(df) | |
| selected_model_types = render_model_type_selection(df) | |
| # Render leaderboard if selections are valid | |
| if selected_tasks and selected_model_types: | |
| # Filter and prepare data | |
| filtered_df = filter_and_prepare_data(df, selected_tasks, selected_model_types) | |
| # Format data for display | |
| display_df, metric_columns = format_display_dataframe(filtered_df, selected_tasks) | |
| # Render the leaderboard table | |
| render_leaderboard_table(display_df, metric_columns) | |
| else: | |
| # Show empty state | |
| render_empty_state() | |
| # Tab 2: Benchmark Details | |
| with tabs[1]: | |
| # Render task descriptions | |
| render_task_descriptions() | |
| # Render footer | |
| render_footer() | |
| if __name__ == "__main__": | |
| main() |