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() |