Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| def load_dataframe() -> pd.DataFrame: | |
| """ | |
| Load dataframe from the csv file in public directory | |
| Returns | |
| dataframe: a pd.DataFrame of the average scores of the LLMs on each task | |
| """ | |
| dataframe = pd.read_csv("public/datasets/models_scores.csv") | |
| dataframe = dataframe.drop(columns = "Unnamed: 0") | |
| return dataframe | |
| def show_dataframe_top(n:int , dataframe: pd.DataFrame) -> pd.DataFrame: | |
| """ | |
| read only the n-th first row | |
| Arguments | |
| -n: an integer telling the number of row | |
| -dataframe: the dataframe to slice | |
| Returns | |
| dataframe: a pd.DataFrame of the average scores of the LLMs on each task | |
| """ | |
| return dataframe.head(n) | |
| def sort_by(dataframe: pd.DataFrame, column_name: str, ascending:bool = False) -> pd.DataFrame: | |
| """ | |
| Sort the dataframe by column_name | |
| Arguments: | |
| - dataframe: a pandas dataframe to sort | |
| - column_name: a string stating the column to sort the dataframe by | |
| - ascending: a boolean stating to sort in ascending order or not, default to False | |
| Returns: | |
| a sorted dataframe | |
| """ | |
| return dataframe.sort_values(by = column_name, ascending = ascending ) | |
| def search_by_name(name: str) -> pd.DataFrame: | |
| """ | |
| Search a model by its name | |
| Arguments: | |
| - name: the name of the model or part of it | |
| Returns: | |
| a pandas Dataframe of every row that contains name | |
| """ | |
| dataframe = load_dataframe() | |
| indexes = dataframe["model_name"].str.contains(name) | |
| return dataframe[indexes] | |
| def validate_categories(categories: list) -> bool: | |
| """ | |
| validate a list of categories to the columns in the dataframe | |
| Arguments: | |
| - categories: a list of categories for the ordering of the columns in the dataframe | |
| This expects a list with six elements that should be (not necessary in order): | |
| - ARC | |
| - GSM8K | |
| - TruthfulQA | |
| - Winogrande | |
| - HellaSwag | |
| - MMLU | |
| Returns | |
| - True if the list has the right number of element and right elements | |
| - False otherwise | |
| """ | |
| valid_categories = False | |
| if len(categories) == 6: | |
| if ("ARC" in categories and "GSM8K" in categories and "TruthfulQA" in categories | |
| and "Winogrande" in categories and "HellaSwag" in categories and "MMLU" in categories): | |
| valid_categories = True | |
| else: | |
| valid_categories = False | |
| else: | |
| valid_categories = False | |
| return valid_categories |