Spaces:
Paused
Paused
| 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() |