TITAN-Leaderboard / app /utils.py
manhtd's picture
Change display name of models
59062c7
from data.model_handler import ModelHandler
import pandas as pd
def make_clickable_model(model_name:str, link=None):
if link is None:
link = "https://huggingface.co/" + model_name
return f'<a target="_blank" style="text-decoration: underline" href="{link}">{model_name.replace("TitanCAProject/", "")}</a>'
def add_rank_and_format(df:pd.DataFrame):
df = df.reset_index()
df = df.rename(columns={"index": "Model"})
df = ModelHandler.add_rank(df)
df["Model"] = df["Model"].apply(make_clickable_model)
return df
def remove_duplicates(df:pd.DataFrame):
"""Remove duplicate models based on their name (after the last '/' if present)."""
df["model_name"] = df["Model"].str.replace("_", "/")
df = df.sort_values("Rank").drop_duplicates(subset=["model_name"], keep="first")
df = df.drop("model_name", axis=1)
return df
def get_refresh_function(model_handler:ModelHandler):
def _refresh(metric):
model_handler.get_titan_data()
data_task_category = model_handler.compute_averages(metric)
df = add_rank_and_format(data_task_category)
return df
return _refresh
def filter_models(data, search_term):
if search_term:
data = data[data["Model"].str.contains(search_term, case=False, na=False)]
return data