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