Spaces:
Running
Running
Ludwig Stumpp
commited on
Commit
·
7aa2aea
1
Parent(s):
b1314a6
Add filters for leaderboard
Browse files- streamlit_app.py +53 -1
streamlit_app.py
CHANGED
@@ -21,6 +21,39 @@ def grab_file_from_repo(repo_url: str, filename: str) -> str:
|
|
21 |
return requests.get(url).text
|
22 |
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
def setup_basic():
|
25 |
title = "LLM-Leaderboard"
|
26 |
|
@@ -41,7 +74,25 @@ def setup_basic():
|
|
41 |
def setup_table():
|
42 |
csv_table = grab_file_from_repo(REPO_URL, "leaderboard.csv")
|
43 |
df = pd.read_csv(io.StringIO(csv_table), index_col=0)
|
44 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
|
47 |
def setup_footer():
|
@@ -56,6 +107,7 @@ def setup_footer():
|
|
56 |
def main():
|
57 |
setup_basic()
|
58 |
setup_table()
|
|
|
59 |
setup_footer()
|
60 |
|
61 |
|
|
|
21 |
return requests.get(url).text
|
22 |
|
23 |
|
24 |
+
def filter_dataframe(df: pd.DataFrame) -> pd.DataFrame:
|
25 |
+
"""
|
26 |
+
Adds a UI on top of a dataframe to let viewers filter columns
|
27 |
+
|
28 |
+
Modified from https://blog.streamlit.io/auto-generate-a-dataframe-filtering-ui-in-streamlit-with-filter_dataframe/
|
29 |
+
|
30 |
+
Args:
|
31 |
+
df (pd.DataFrame): Original dataframe
|
32 |
+
|
33 |
+
Returns:
|
34 |
+
pd.DataFrame: Filtered dataframe
|
35 |
+
"""
|
36 |
+
modify = st.checkbox("Add filters")
|
37 |
+
|
38 |
+
if not modify:
|
39 |
+
return df
|
40 |
+
|
41 |
+
df = df.copy()
|
42 |
+
|
43 |
+
modification_container = st.container()
|
44 |
+
|
45 |
+
with modification_container:
|
46 |
+
to_filter_index = st.multiselect("Filter rows on", df.index)
|
47 |
+
if to_filter_index:
|
48 |
+
df = pd.DataFrame(df.loc[to_filter_index])
|
49 |
+
|
50 |
+
to_filter_columns = st.multiselect("Filter columns on", df.columns)
|
51 |
+
if to_filter_columns:
|
52 |
+
df = pd.DataFrame(df[to_filter_columns])
|
53 |
+
|
54 |
+
return df
|
55 |
+
|
56 |
+
|
57 |
def setup_basic():
|
58 |
title = "LLM-Leaderboard"
|
59 |
|
|
|
74 |
def setup_table():
|
75 |
csv_table = grab_file_from_repo(REPO_URL, "leaderboard.csv")
|
76 |
df = pd.read_csv(io.StringIO(csv_table), index_col=0)
|
77 |
+
st.markdown("### Leaderboard")
|
78 |
+
st.dataframe(filter_dataframe(df))
|
79 |
+
|
80 |
+
|
81 |
+
def setup_benchmarks():
|
82 |
+
csv_table = grab_file_from_repo(REPO_URL, "benchmarks.csv")
|
83 |
+
df = pd.read_csv(io.StringIO(csv_table), index_col=0)
|
84 |
+
df = df.sort_index(ascending=True)
|
85 |
+
|
86 |
+
st.markdown("### Covered Benchmarks")
|
87 |
+
|
88 |
+
selected_benchmark = st.selectbox("Select a benchmark to learn more:", df.index.unique())
|
89 |
+
df_selected = df.loc[selected_benchmark]
|
90 |
+
text = [
|
91 |
+
f"Name: {selected_benchmark} ",
|
92 |
+
]
|
93 |
+
for key in df_selected.keys():
|
94 |
+
text.append(f"{key}: {df_selected[key]}")
|
95 |
+
st.markdown("\n".join(text))
|
96 |
|
97 |
|
98 |
def setup_footer():
|
|
|
107 |
def main():
|
108 |
setup_basic()
|
109 |
setup_table()
|
110 |
+
setup_benchmarks()
|
111 |
setup_footer()
|
112 |
|
113 |
|