third
Browse files
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 |
-
|
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
|
93 |
df_filtered = df_filtered.sort_values("Accuracy", ascending=False).reset_index(drop=True)
|
94 |
-
|
|
|
|
|
|
|
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.
|
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")
|