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")
|