in fastchat/serve/monitor/monitor.py [0:0]
def build_leaderboard_tab(elo_results_file, leaderboard_table_file):
if elo_results_file is None: # Do live update
md = "Loading ..."
p1 = p2 = p3 = p4 = None
else:
with open(elo_results_file, "rb") as fin:
elo_results = pickle.load(fin)
md = make_leaderboard_md(elo_results)
p1 = elo_results["win_fraction_heatmap"]
p2 = elo_results["battle_count_heatmap"]
p3 = elo_results["bootstrap_elo_rating"]
p4 = elo_results["average_win_rate_bar"]
md_1 = gr.Markdown(md, elem_id="leaderboard_markdown")
if leaderboard_table_file:
data = load_leaderboard_table_csv(leaderboard_table_file)
headers = [
"Model",
"Arena Elo rating",
"MT-bench (score)",
"MMLU",
"License",
]
values = []
for item in data:
row = []
for key in headers:
value = item[key]
row.append(value)
values.append(row)
values.sort(key=lambda x: -x[1] if not np.isnan(x[1]) else 1e9)
headers[1] = "⭐ " + headers[1]
headers[2] = "📈 " + headers[2]
gr.Dataframe(
headers=headers,
datatype=["markdown", "number", "number", "number", "str"],
value=values,
elem_id="leaderboard_dataframe",
)
gr.Markdown(