ha251 commited on
Commit
84e7e3e
·
verified ·
1 Parent(s): 298e1e8

Update miniapp_leaderboard.py

Browse files
Files changed (1) hide show
  1. miniapp_leaderboard.py +62 -65
miniapp_leaderboard.py CHANGED
@@ -9,11 +9,11 @@ import gradio as gr
9
  import pandas as pd
10
  from huggingface_hub import HfApi, hf_hub_download
11
 
12
- APP_NAME = "MiniApp"
13
 
14
- HF_TOKEN = os.environ.get("HF_TOKEN")
15
- LEADERBOARD_DATASET = os.environ.get("LEADERBOARD_DATASET", "").strip()
16
- OWNER_REVIEW_TOKEN = os.environ.get("OWNER_REVIEW_TOKEN", "").strip()
17
 
18
  PENDING_PREFIX = "pending/"
19
  APPROVED_PREFIX = "approved/"
@@ -39,71 +39,68 @@ def _slug(s: str):
39
  s = re.sub(r"[^a-z0-9]+", "-", (s or "").lower())
40
  return s.strip("-") or "model"
41
 
42
-
43
  def _load_df(prefix: str):
44
- if not HF_TOKEN or not LEADERBOARD_DATASET:
45
- return pd.DataFrame(columns=["rank"] + COLUMNS)
46
-
47
- api = _api()
48
  try:
49
- files = api.list_repo_files(repo_id=LEADERBOARD_DATASET, repo_type="dataset")
50
- except Exception:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  return pd.DataFrame(columns=["rank"] + COLUMNS)
52
 
53
- files = [f for f in files if f.startswith(prefix) and f.endswith(".json")]
54
- rows = []
55
-
56
- for f in files:
57
- try:
58
- path = hf_hub_download(
59
- repo_id=LEADERBOARD_DATASET,
60
- repo_type="dataset",
61
- filename=f,
62
- token=HF_TOKEN,
63
- )
64
- with open(path, "r") as fp:
65
- rows.append(json.load(fp))
66
- except Exception:
67
- continue
68
-
69
- if not rows:
70
- return pd.DataFrame(columns=["rank"] + COLUMNS)
71
-
72
- df = pd.DataFrame(rows)
73
-
74
- for c in COLUMNS:
75
- if c not in df.columns:
76
- df[c] = ""
77
-
78
- for c in NUMERIC_COLS:
79
- df[c] = pd.to_numeric(df[c], errors="coerce")
80
-
81
- # 按 avg 排序
82
- df = df.sort_values(by="avg", ascending=False).reset_index(drop=True)
83
-
84
- # 排序
85
- df = df.sort_values(by="avg", ascending=False).reset_index(drop=True)
86
-
87
- # 生成排名
88
- ranks = []
89
- for i in range(len(df)):
90
- rank_number = i + 1
91
- if rank_number == 1:
92
- ranks.append("🥇 1")
93
- elif rank_number == 2:
94
- ranks.append("🥈 2")
95
- elif rank_number == 3:
96
- ranks.append("🥉 3")
97
- else:
98
- ranks.append(str(rank_number))
99
-
100
- df.insert(0, "rank", ranks)
101
-
102
- # 强制 rank 为字符串类型
103
- df["rank"] = df["rank"].astype(str)
104
-
105
- return df[["rank"] + COLUMNS]
106
-
107
  def refresh():
108
  return _load_df(APPROVED_PREFIX)
109
 
 
9
  import pandas as pd
10
  from huggingface_hub import HfApi, hf_hub_download
11
 
12
+ APP_NAME = "MiniApp v2 - DEBUG"
13
 
14
+ HF_TOKEN = os.environ.get("HF_TOKEN") or ""
15
+ LEADERBOARD_DATASET = (os.environ.get("LEADERBOARD_DATASET") or "").strip()
16
+ OWNER_REVIEW_TOKEN = os.environ.get("OWNER_REVIEW_TOKEN") or ""
17
 
18
  PENDING_PREFIX = "pending/"
19
  APPROVED_PREFIX = "approved/"
 
39
  s = re.sub(r"[^a-z0-9]+", "-", (s or "").lower())
40
  return s.strip("-") or "model"
41
 
 
42
  def _load_df(prefix: str):
 
 
 
 
43
  try:
44
+ if not HF_TOKEN or not LEADERBOARD_DATASET:
45
+ return pd.DataFrame(columns=["rank"] + COLUMNS)
46
+
47
+ api = _api()
48
+ files = api.list_repo_files(
49
+ repo_id=LEADERBOARD_DATASET,
50
+ repo_type="dataset"
51
+ )
52
+
53
+ files = [f for f in files if f.startswith(prefix) and f.endswith(".json")]
54
+ rows = []
55
+
56
+ for f in files:
57
+ try:
58
+ path = hf_hub_download(
59
+ repo_id=LEADERBOARD_DATASET,
60
+ repo_type="dataset",
61
+ filename=f,
62
+ token=HF_TOKEN,
63
+ )
64
+ with open(path, "r") as fp:
65
+ rows.append(json.load(fp))
66
+ except Exception:
67
+ continue
68
+
69
+ if not rows:
70
+ return pd.DataFrame(columns=["rank"] + COLUMNS)
71
+
72
+ df = pd.DataFrame(rows)
73
+
74
+ for c in COLUMNS:
75
+ if c not in df.columns:
76
+ df[c] = ""
77
+
78
+ for c in NUMERIC_COLS:
79
+ df[c] = pd.to_numeric(df[c], errors="coerce")
80
+
81
+ df = df.sort_values(by="avg", ascending=False).reset_index(drop=True)
82
+
83
+ ranks = []
84
+ for i in range(len(df)):
85
+ r = i + 1
86
+ if r == 1:
87
+ ranks.append("🥇 1")
88
+ elif r == 2:
89
+ ranks.append("🥈 2")
90
+ elif r == 3:
91
+ ranks.append("🥉 3")
92
+ else:
93
+ ranks.append(str(r))
94
+
95
+ df.insert(0, "rank", ranks)
96
+ df["rank"] = df["rank"].astype(str)
97
+
98
+ return df[["rank"] + COLUMNS]
99
+
100
+ except Exception as e:
101
+ print("LOAD ERROR:", e)
102
  return pd.DataFrame(columns=["rank"] + COLUMNS)
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  def refresh():
105
  return _load_df(APPROVED_PREFIX)
106