File size: 1,428 Bytes
2a9bd05
 
 
 
 
 
 
 
2186efb
2a9bd05
 
2186efb
 
 
 
 
 
 
 
 
2a9bd05
2186efb
 
 
 
 
 
 
 
2a9bd05
2186efb
2a9bd05
 
 
 
2186efb
 
 
 
2a9bd05
 
2186efb
 
 
 
 
 
2a9bd05
 
2186efb
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
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)