Spaces:
Sleeping
Sleeping
File size: 4,756 Bytes
4b2522c 84b5dfa 4b2522c 84b5dfa 4b2522c 84b5dfa e5438c2 84b5dfa e5438c2 84b5dfa fd5a922 84b5dfa 4b2522c 84b5dfa 4b2522c 84b5dfa e5438c2 84b5dfa e5438c2 84b5dfa e5438c2 fd5a922 e5438c2 84b5dfa e5438c2 84b5dfa 4b2522c 84b5dfa 4b2522c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
import gradio as gr
from apscheduler.schedulers.background import BackgroundScheduler
from src.static.env import API, REPO_ID, HF_TOKEN
from src.static.about import TITLE, INTRO, ABOUT, DOCUMENTATION
from src.leaderboards.get_from_hub import get_leaderboard_info
from src.static.tag_info import *
from src.static.display import make_clickable
def restart_space():
API.restart_space(repo_id=REPO_ID, token=HF_TOKEN)
LEADERBOARDS_TO_INFO, INFO_TO_LEADERBOARDS = get_leaderboard_info()
def update_leaderboards(show_all, modality_tags, submission_tags, test_set_tags, evaluation_tags, language_tags, judge_tags):
spaces_of_interest = []
if show_all:
spaces_of_interest = INFO_TO_LEADERBOARDS["all"]
else:
for tag in modality_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["modality"][tag.lower()])
for tag in submission_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["submission"][tag.lower()])
for tag in test_set_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["test"][tag.lower()])
for tag in evaluation_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["modality"][tag.lower()])
for tag in language_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["language"][tag.lower()])
for tag in judge_tags:
spaces_of_interest.extend(INFO_TO_LEADERBOARDS["judge"][tag.lower()])
return "- " + "\n - ".join([
make_clickable(space) +
f"*Tags: {', '.join(LEADERBOARDS_TO_INFO[space]) if len(LEADERBOARDS_TO_INFO[space]) > 0 else 'None. Please fill the tags!'}*"
for space in spaces_of_interest
])
demo = gr.Blocks()
with demo:
gr.Markdown(TITLE)
gr.Markdown(INTRO, elem_classes="markdown-text")
with gr.Tabs(elem_classes="tab-buttons") as tabs:
with gr.TabItem("Search"):
with gr.Row():
with gr.Column():
modality_tags = gr.CheckboxGroup(
choices=[tag.name for tag in Modality],
value=[],
label="Modality of choice"
)
submission_tags = gr.CheckboxGroup(
choices=[tag.name for tag in SubmissionType],
value=[],
label="Submission type"
)
test_set_tags = gr.CheckboxGroup(
choices=[tag.name for tag in TestSetStatus],
value=[],
label="Test set status"
)
judge_tags = gr.CheckboxGroup(
choices=[tag.name for tag in Judge],
value=[],
label="Judge used for the evaluation"
)
with gr.Column():
show_all = gr.Checkbox(
value=False,
label="Show all leaderboards"
)
evaluation_tags = gr.CheckboxGroup(
choices=[tag.name for tag in EvaluationCategory],
value=[],
label="Specific evaluation categories"
)
language_tags = gr.CheckboxGroup(
choices=[tag.capitalize() for tag in sorted(list(INFO_TO_LEADERBOARDS["language"].keys()))],
value=[],
label="Specific languages"
)
with gr.Row():
leaderboards = gr.Markdown(
value="",
)
for selector in [modality_tags, submission_tags, test_set_tags, evaluation_tags, language_tags, judge_tags]:
selector.change(
lambda _: False,
outputs=show_all
)
for selector in [show_all, modality_tags, submission_tags, test_set_tags, evaluation_tags, language_tags, judge_tags]:
selector.change(
update_leaderboards,
[show_all, modality_tags, submission_tags, test_set_tags, evaluation_tags, language_tags, judge_tags],
leaderboards,
queue=True,
)
with gr.TabItem("About"):
gr.Markdown(ABOUT, elem_classes="markdown-text")
with gr.TabItem("Documentation"):
gr.Markdown(DOCUMENTATION, elem_classes="markdown-text")
scheduler = BackgroundScheduler()
scheduler.add_job(restart_space, "interval", seconds=10800) # restarted every 3h
scheduler.start()
demo.queue(default_concurrency_limit=40).launch() |