Spaces:
Running
Running
File size: 2,626 Bytes
ed2eb44 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
"""
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() |