Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Shivam commited on
Commit ·
66dddc0
1
Parent(s): 4251f03
New leaderboard method updating script per class
Browse files- app.py +6 -2
- backends/__init__.py +2 -0
- backends/registry.py +21 -1
app.py
CHANGED
|
@@ -4,7 +4,7 @@ import numpy as np
|
|
| 4 |
from datetime import datetime, timezone
|
| 5 |
|
| 6 |
from constants import BANNER, INTRODUCTION_TEXT, CITATION_TEXT, ABOUT_TEXT, LEADERBOARD_CSS
|
| 7 |
-
from backends import DROPDOWN_CHOICES, FAMILY_IDS, default_family_id
|
| 8 |
from init import (
|
| 9 |
eval_lock,
|
| 10 |
is_model_on_hub,
|
|
@@ -77,8 +77,12 @@ def submit_model(model_id: str, family_id: str, progress=gr.Progress()) -> str:
|
|
| 77 |
if not model_id:
|
| 78 |
return styled_error("Please enter a model ID.")
|
| 79 |
|
|
|
|
| 80 |
if family_id not in FAMILY_IDS:
|
| 81 |
-
return styled_error(
|
|
|
|
|
|
|
|
|
|
| 82 |
|
| 83 |
# Check if already evaluated (one row per model_id)
|
| 84 |
existing = load_raw_results()
|
|
|
|
| 4 |
from datetime import datetime, timezone
|
| 5 |
|
| 6 |
from constants import BANNER, INTRODUCTION_TEXT, CITATION_TEXT, ABOUT_TEXT, LEADERBOARD_CSS
|
| 7 |
+
from backends import DROPDOWN_CHOICES, FAMILY_IDS, default_family_id, normalize_family_id
|
| 8 |
from init import (
|
| 9 |
eval_lock,
|
| 10 |
is_model_on_hub,
|
|
|
|
| 77 |
if not model_id:
|
| 78 |
return styled_error("Please enter a model ID.")
|
| 79 |
|
| 80 |
+
family_id = normalize_family_id(family_id) or default_family_id()
|
| 81 |
if family_id not in FAMILY_IDS:
|
| 82 |
+
return styled_error(
|
| 83 |
+
f"Unknown model family: {family_id!r}. "
|
| 84 |
+
f"Use one of: {', '.join(FAMILY_IDS)}."
|
| 85 |
+
)
|
| 86 |
|
| 87 |
# Check if already evaluated (one row per model_id)
|
| 88 |
existing = load_raw_results()
|
backends/__init__.py
CHANGED
|
@@ -6,6 +6,7 @@ from .registry import (
|
|
| 6 |
FAMILY_META,
|
| 7 |
build_transcriber,
|
| 8 |
default_family_id,
|
|
|
|
| 9 |
resolve_label,
|
| 10 |
)
|
| 11 |
|
|
@@ -15,5 +16,6 @@ __all__ = [
|
|
| 15 |
"FAMILY_META",
|
| 16 |
"build_transcriber",
|
| 17 |
"default_family_id",
|
|
|
|
| 18 |
"resolve_label",
|
| 19 |
]
|
|
|
|
| 6 |
FAMILY_META,
|
| 7 |
build_transcriber,
|
| 8 |
default_family_id,
|
| 9 |
+
normalize_family_id,
|
| 10 |
resolve_label,
|
| 11 |
)
|
| 12 |
|
|
|
|
| 16 |
"FAMILY_META",
|
| 17 |
"build_transcriber",
|
| 18 |
"default_family_id",
|
| 19 |
+
"normalize_family_id",
|
| 20 |
"resolve_label",
|
| 21 |
]
|
backends/registry.py
CHANGED
|
@@ -30,11 +30,31 @@ FAMILY_META: dict[str, tuple[str, str]] = {
|
|
| 30 |
|
| 31 |
FAMILY_IDS: tuple[str, ...] = tuple(FAMILY_META.keys())
|
| 32 |
|
|
|
|
| 33 |
DROPDOWN_CHOICES: list[tuple[str, str]] = [
|
| 34 |
-
(
|
| 35 |
]
|
| 36 |
|
| 37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
def default_family_id() -> str:
|
| 39 |
return "auto"
|
| 40 |
|
|
|
|
| 30 |
|
| 31 |
FAMILY_IDS: tuple[str, ...] = tuple(FAMILY_META.keys())
|
| 32 |
|
| 33 |
+
# Gradio Dropdown expects each tuple as (label, value): label is shown; value is passed to Python.
|
| 34 |
DROPDOWN_CHOICES: list[tuple[str, str]] = [
|
| 35 |
+
(f"{FAMILY_META[fid][0]} — {FAMILY_META[fid][1]}", fid) for fid in FAMILY_IDS
|
| 36 |
]
|
| 37 |
|
| 38 |
|
| 39 |
+
def normalize_family_id(raw: str | None) -> str | None:
|
| 40 |
+
"""
|
| 41 |
+
Map UI / API input to a canonical family id.
|
| 42 |
+
|
| 43 |
+
Gradio must receive (label, value) tuples in DROPDOWN_CHOICES; if an old client
|
| 44 |
+
still sends the long label string, map it back to the id when possible.
|
| 45 |
+
"""
|
| 46 |
+
if raw is None:
|
| 47 |
+
return None
|
| 48 |
+
s = raw.strip()
|
| 49 |
+
if s in FAMILY_META:
|
| 50 |
+
return s
|
| 51 |
+
for fid, (short, desc) in FAMILY_META.items():
|
| 52 |
+
long_label = f"{short} — {desc}"
|
| 53 |
+
if s == long_label:
|
| 54 |
+
return fid
|
| 55 |
+
return s
|
| 56 |
+
|
| 57 |
+
|
| 58 |
def default_family_id() -> str:
|
| 59 |
return "auto"
|
| 60 |
|