Spaces:
Runtime error
Runtime error
import io | |
import pandas as pd | |
import requests | |
import streamlit as st | |
REPO_URL = "https://github.com/LudwigStumpp/llm-leaderboard" | |
def grab_file_from_repo(repo_url: str, filename: str) -> str: | |
"""Grabs a file from a GitHub repository. | |
Args: | |
repo_url (str): URL of the GitHub repository. | |
filename (str): Name of the file to grab. | |
Returns: | |
str: Content of the file. | |
""" | |
url = repo_url.replace("github.com", "raw.githubusercontent.com") + f"/main/{filename}" | |
return requests.get(url).text | |
def filter_dataframe(df: pd.DataFrame) -> pd.DataFrame: | |
""" | |
Adds a UI on top of a dataframe to let viewers filter columns | |
Modified from https://blog.streamlit.io/auto-generate-a-dataframe-filtering-ui-in-streamlit-with-filter_dataframe/ | |
Args: | |
df (pd.DataFrame): Original dataframe | |
Returns: | |
pd.DataFrame: Filtered dataframe | |
""" | |
modify = st.checkbox("Add filters") | |
if not modify: | |
return df | |
df = df.copy() | |
modification_container = st.container() | |
with modification_container: | |
to_filter_index = st.multiselect("Filter by model:", df.index) | |
if to_filter_index: | |
df = pd.DataFrame(df.loc[to_filter_index]) | |
to_filter_columns = st.multiselect("Filter by benchmark:", df.columns) | |
if to_filter_columns: | |
df = pd.DataFrame(df[to_filter_columns]) | |
return df | |
def setup_basic(): | |
title = "LLM-Leaderboard" | |
st.set_page_config( | |
page_title=title, | |
page_icon="π", | |
) | |
st.title(title) | |
st.markdown( | |
""" | |
A joint community effort to create one central leaderboard for LLMs. | |
Visit [llm-leaderboard](https://github.com/LudwigStumpp/llm-leaderboard) to contribute. | |
""" | |
) | |
def setup_table(): | |
csv_table = grab_file_from_repo(REPO_URL, "leaderboard.csv") | |
df = pd.read_csv(io.StringIO(csv_table), index_col=0) | |
st.markdown("### Leaderboard") | |
st.dataframe(filter_dataframe(df)) | |
def setup_benchmarks(): | |
csv_table = grab_file_from_repo(REPO_URL, "benchmarks.csv") | |
df = pd.read_csv(io.StringIO(csv_table), index_col=0) | |
df = df.sort_index(ascending=True) | |
st.markdown("### Covered Benchmarks") | |
selected_benchmark = st.selectbox("Select a benchmark to learn more:", df.index.unique()) | |
df_selected = df.loc[selected_benchmark] | |
text = [ | |
f"Name: {selected_benchmark} ", | |
] | |
for key in df_selected.keys(): | |
text.append(f"{key}: {df_selected[key]}") | |
st.markdown("\n".join(text)) | |
def setup_footer(): | |
st.markdown( | |
""" | |
--- | |
Made with β€οΈ by the awesome open-source community from all over π. | |
""" | |
) | |
def main(): | |
setup_basic() | |
setup_table() | |
setup_benchmarks() | |
setup_footer() | |
if __name__ == "__main__": | |
main() | |