import gradio as gr from data_loader import METHODOLOGY from utils import ( get_rank_badge, get_score_bar, get_score_bar_secondary, get_type_badge, ) def filter_leaderboard(df, sort_by): filtered_df = df.copy() if sort_by == "Score on obfuscated questions": filtered_df = filtered_df.sort_values(by="Obfuscated score", ascending=False) else: filtered_df = filtered_df.sort_values(by="Baseline score", ascending=False) filtered_df["Rank"] = range(1, len(filtered_df) + 1) # Generate styled table HTML table_html = f"""
""" for _, row in filtered_df.iterrows(): table_html += f""" """ return table_html def create_leaderboard_tab(df, HEADER_CONTENT, CARDS): gr.HTML(HEADER_CONTENT + CARDS) # Filters row with gr.Row(equal_height=True): with gr.Column(scale=0.4): sort_by = gr.Dropdown( choices=["Score on obfuscated questions", "Score on all questions"], value="Score on obfuscated questions", label="Sort by", ) # Content output = gr.HTML() sort_by.change( fn=lambda s: filter_leaderboard(df, s), inputs=[sort_by], outputs=[output], ) return output
Rank Model Provider Type Exact match score (obfuscated questions) Exact match score (all questions)
{get_rank_badge(row['Rank'])} {row['Model']} {row['Provider']} {get_type_badge(row['Type'])} {get_score_bar(row['Obfuscated score'])} {get_score_bar_secondary(row['Baseline score'])}