MLRC_Bench / src /app.py
Armeddinosaur's picture
Adding MLRC Bench
ed2eb44
raw
history blame
2.63 kB
"""
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()