import gradio as gr import pandas as pd LEADERBOARD_FILE = "results.csv" def load_leaderboard(): return pd.read_csv(LEADERBOARD_FILE) def display_data(data_type="Overall"): df = load_leaderboard() if data_type == "Overall": new_df = pd.DataFrame({ "Model": df["Model"], "Safe Score": df["Overall Safe Tasks Score"], "Harm Score": df["Overall Harm Tasks Score"], "Refusal Rate": df["Refusal Rate"], "Normalized Safety Score": df["Normalized Safety Score"], "Open": df["Open"] }) else: new_df = pd.DataFrame({ "Model": df["Model"], "Safe Score": df[data_type], "Harm Score": "", "Refusal Rate": "", "Normalized Safety Score": "", "Open": df["Open"] }) return new_df.sort_values(by="Safe Score", ascending=False) with gr.Blocks() as demo: gr.Markdown("# SafeArena Leaderboard") data_type_dropdown = gr.Dropdown( label="Data Type", choices=["Overall", "Bias", "Cybercrime", "Harassment", "Misinformation", "Illegal Activity"], value="Overall" ) table = gr.Dataframe(value=display_data("Overall"), interactive=False) data_type_dropdown.change( fn=display_data, inputs=data_type_dropdown, outputs=table ) demo.launch(share=True)