ash-98 commited on
Commit
24a0949
·
1 Parent(s): 6037f36
Files changed (1) hide show
  1. app.py +7 -11
app.py CHANGED
@@ -1,28 +1,21 @@
1
  import streamlit as st
2
  import pandas as pd
3
 
4
- # Set page configuration
5
  st.set_page_config(page_title="Cyber Benchmark Hub: SECQA Leaderboard", layout="wide")
6
 
7
- # Main Title
8
  st.title("Cyber Benchmark Hub: SECQA Leaderboard")
9
  st.markdown("#### [View the SECQA Dataset](https://huggingface.co/datasets/zefang-liu/secqa)")
10
 
11
- # Sidebar: Logo and Website Link
12
  with st.sidebar:
13
  st.image("https://cdn.prod.website-files.com/630f558f2a15ca1e88a2f774/631f1436ad7a0605fecc5e15_Logo.svg", use_container_width=True)
14
  st.markdown("[Priam.ai](https://www.priam.ai/)")
15
  st.divider()
16
 
17
- # Top-level: Dataset Category
18
- dataset_categories = ["Multiple Choice", "Open Question", "Steps (Reasoning)"]
19
  selected_category = st.selectbox("Select Dataset Category", dataset_categories, index=0)
20
 
21
- # Filter dataset options based on category
22
  datasets_by_category = {
23
  "Multiple Choice": ["secQA"],
24
- "Open Question": ["Testing..."],
25
- "Steps (Reasoning)": ["Testing..."]
26
  }
27
  dataset_choice = st.selectbox("Select Dataset", datasets_by_category[selected_category], index=0)
28
 
@@ -89,16 +82,19 @@ df_filtered = df[df["Type"].isin(source_filter)] if source_filter else df
89
  df_filtered["Accuracy"] = df_filtered["V1 Accuracy"] if dataset_version == "v1" else df_filtered["V2 Accuracy"]
90
  df_filtered = df_filtered[["Model", "Type", "Accuracy"]].dropna() # Drop rows with errors
91
 
92
- # Sort by Accuracy descending and add a Rank column starting from 1
93
  df_filtered = df_filtered.sort_values("Accuracy", ascending=False).reset_index(drop=True)
94
- df_filtered.insert(0, "Rank", range(1, len(df_filtered) + 1))
 
 
 
95
 
96
  # Use columns to display leaderboard and model details side-by-side
97
  col1, col2 = st.columns([2, 1])
98
 
99
  with col1:
100
  st.subheader(f"Leaderboard for {dataset_choice.upper()} Version {dataset_version}")
101
- st.dataframe(df_filtered.reset_index(drop=True))
102
 
103
  with col2:
104
  st.subheader("Model Details")
 
1
  import streamlit as st
2
  import pandas as pd
3
 
 
4
  st.set_page_config(page_title="Cyber Benchmark Hub: SECQA Leaderboard", layout="wide")
5
 
 
6
  st.title("Cyber Benchmark Hub: SECQA Leaderboard")
7
  st.markdown("#### [View the SECQA Dataset](https://huggingface.co/datasets/zefang-liu/secqa)")
8
 
 
9
  with st.sidebar:
10
  st.image("https://cdn.prod.website-files.com/630f558f2a15ca1e88a2f774/631f1436ad7a0605fecc5e15_Logo.svg", use_container_width=True)
11
  st.markdown("[Priam.ai](https://www.priam.ai/)")
12
  st.divider()
13
 
14
+ dataset_categories = ["Multiple Choice"]
 
15
  selected_category = st.selectbox("Select Dataset Category", dataset_categories, index=0)
16
 
 
17
  datasets_by_category = {
18
  "Multiple Choice": ["secQA"],
 
 
19
  }
20
  dataset_choice = st.selectbox("Select Dataset", datasets_by_category[selected_category], index=0)
21
 
 
82
  df_filtered["Accuracy"] = df_filtered["V1 Accuracy"] if dataset_version == "v1" else df_filtered["V2 Accuracy"]
83
  df_filtered = df_filtered[["Model", "Type", "Accuracy"]].dropna() # Drop rows with errors
84
 
85
+ # Sort by Accuracy descending
86
  df_filtered = df_filtered.sort_values("Accuracy", ascending=False).reset_index(drop=True)
87
+
88
+ # Compute dense ranking so that models with equal accuracy share the same rank
89
+ df_filtered['Rank'] = df_filtered['Accuracy'].rank(method='dense', ascending=False).astype(int)
90
+ df_filtered = df_filtered[['Rank', 'Model', 'Type', 'Accuracy']]
91
 
92
  # Use columns to display leaderboard and model details side-by-side
93
  col1, col2 = st.columns([2, 1])
94
 
95
  with col1:
96
  st.subheader(f"Leaderboard for {dataset_choice.upper()} Version {dataset_version}")
97
+ st.dataframe(df_filtered.style.hide(axis='index'))
98
 
99
  with col2:
100
  st.subheader("Model Details")