Spaces:
Sleeping
Sleeping
| 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() | |
| for col in ["Safe Completion Rate", "Harmful Completion Rate", "Refusal Rate", "Normalized Safety Score", "Bias Completion Rate", "Cybercrime Completion Rate", "Harassment Completion Rate","Misinformation Completion Rate", "Illegal Activity Completion Rate"]: | |
| df[col] = df[col].apply(lambda x: f"{x:.1f}") | |
| if data_type == "Overall": | |
| new_df = df[["Model", "Safe Completion Rate", "Harmful Completion Rate", "Refusal Rate", "Normalized Safety Score", "License"]].copy() | |
| else: | |
| category_col = f"{data_type} Completion Rate" | |
| new_df = df[["Model", category_col, "Safe Completion Rate", "License"]].copy() | |
| sort_col = "Model" | |
| return new_df.sort_values(by=sort_col) | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# SafeArena Leaderboard") | |
| gr.Markdown(""" | |
| # SafeArena Leaderboard | |
| | [**🤗Dataset**](https://huggingface.co/datasets/McGill-NLP/safearena) | [**📄Paper**](https://arxiv.org/abs/2503.04957) | [**🌐Website**](https://safearena.github.io) | [**💾Code**](https://github.com/McGill-NLP/safearena) | | |
| | :--: | :--: | :--: | :--: | | |
| """) | |
| 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) |