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