fukugawa commited on
Commit
eed6619
·
1 Parent(s): 35c2b97
Files changed (1) hide show
  1. indiebot_arena/ui/leaderboard.py +23 -1
indiebot_arena/ui/leaderboard.py CHANGED
@@ -10,6 +10,7 @@ DESCRIPTION = "### 🏆️ リーダーボード"
10
  base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
11
  docs_path = os.path.join(base_dir, "docs", "leaderboard_header.md")
12
 
 
13
  def leaderboard_content(dao, language):
14
  arena_service = ArenaService(dao)
15
 
@@ -27,6 +28,26 @@ def leaderboard_content(dao, language):
27
  data = [["No data available", "", "", "", ""]]
28
  df = pd.DataFrame(data, columns=["Model Name", "Elo Score", "File Size (GB)", "Description", "Last Updated"])
29
  df.insert(0, "Rank", range(1, len(df) + 1))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  return df
31
 
32
  initial_weight_class = "U-5GB"
@@ -38,7 +59,8 @@ def leaderboard_content(dao, language):
38
  weight_class_radio = gr.Radio(choices=["U-5GB", "U-10GB"], label="階級", value=initial_weight_class)
39
  leaderboard_table = gr.Dataframe(
40
  headers=["Rank", "Model Name", "Elo Score", "File Size (GB)", "Description", "Last Updated"],
41
- interactive=False
 
42
  )
43
  refresh_btn = gr.Button("更新", variant="primary")
44
  refresh_btn.click(fn=fetch_leaderboard_data, inputs=weight_class_radio, outputs=leaderboard_table)
 
10
  base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
11
  docs_path = os.path.join(base_dir, "docs", "leaderboard_header.md")
12
 
13
+
14
  def leaderboard_content(dao, language):
15
  arena_service = ArenaService(dao)
16
 
 
28
  data = [["No data available", "", "", "", ""]]
29
  df = pd.DataFrame(data, columns=["Model Name", "Elo Score", "File Size (GB)", "Description", "Last Updated"])
30
  df.insert(0, "Rank", range(1, len(df) + 1))
31
+
32
+ def add_link(row):
33
+ raw_name = row["Model Name"]
34
+ if raw_name!="Unknown":
35
+ return f'<a href="https://huggingface.co/{raw_name}" target="_blank">{raw_name}</a>'
36
+ else:
37
+ return raw_name
38
+
39
+ df["Model Name"] = df.apply(add_link, axis=1)
40
+
41
+ def add_emoji(row):
42
+ rank = row["Rank"]
43
+ linked_name = row["Model Name"]
44
+ emoji = {1: "🥇", 2: "🥈", 3: "🥉"}.get(rank, "")
45
+ if emoji:
46
+ return f'{emoji} {linked_name}'
47
+ else:
48
+ return linked_name
49
+
50
+ df["Model Name"] = df.apply(add_emoji, axis=1)
51
  return df
52
 
53
  initial_weight_class = "U-5GB"
 
59
  weight_class_radio = gr.Radio(choices=["U-5GB", "U-10GB"], label="階級", value=initial_weight_class)
60
  leaderboard_table = gr.Dataframe(
61
  headers=["Rank", "Model Name", "Elo Score", "File Size (GB)", "Description", "Last Updated"],
62
+ interactive=False,
63
+ datatype="markdown"
64
  )
65
  refresh_btn = gr.Button("更新", variant="primary")
66
  refresh_btn.click(fn=fetch_leaderboard_data, inputs=weight_class_radio, outputs=leaderboard_table)