Spaces:
Running
Running
import gradio as gr | |
from gradio_leaderboard import Leaderboard, ColumnFilter, SelectColumns | |
import pandas as pd | |
# Sample data | |
data = { | |
"Model Name": ["SecModel A", "SecModel B", "SecModel C"], | |
"Version": ["1.0", "2.1", "1.3"], | |
"Detection Accuracy (%)": [98.5, 97.2, 96.8], | |
"False Positive Rate (%)": [0.5, 0.7, 0.6], | |
"Processing Time (ms)": [120, 150, 110], | |
"Model Size (MB)": [250, 300, 275], | |
} | |
df = pd.DataFrame(data) | |
# Define columns | |
columns = [ | |
{"name": "Model Name", "type": "text", "displayed_by_default": True}, | |
{"name": "Version", "type": "text", "displayed_by_default": True}, | |
{"name": "Detection Accuracy (%)", "type": "number", "displayed_by_default": True}, | |
{"name": "False Positive Rate (%)", "type": "number", "displayed_by_default": True}, | |
{"name": "Processing Time (ms)", "type": "number", "displayed_by_default": True}, | |
{"name": "Model Size (MB)", "type": "number", "displayed_by_default": True}, | |
] | |
# Initialize leaderboard | |
leaderboard = Leaderboard( | |
value=df, | |
datatype=[col["type"] for col in columns], | |
select_columns=SelectColumns( | |
default_selection=[col["name"] for col in columns if col["displayed_by_default"]], | |
label="Select Columns to Display:", | |
), | |
search_columns=["Model Name", "Version"], | |
filter_columns=[ | |
ColumnFilter("Detection Accuracy (%)", type="slider", min=90, max=100, label="Accuracy Range"), | |
ColumnFilter("False Positive Rate (%)", type="slider", min=0, max=5, label="False Positive Rate Range"), | |
ColumnFilter("Processing Time (ms)", type="slider", min=0, max=200, label="Processing Time Range"), | |
ColumnFilter("Model Size (MB)", type="slider", min=0, max=500, label="Model Size Range"), | |
], | |
interactive=False, | |
) | |
# Gradio interface | |
with gr.Blocks() as demo: | |
gr.Markdown("# Cybersecurity Models Leaderboard") | |
leaderboard.render() | |
demo.launch() |