|
import os |
|
import gradio as gr |
|
|
|
from apscheduler.schedulers.background import BackgroundScheduler |
|
from dabstep_benchmark.content import TITLE, INTRODUCTION_TEXT, SUBMISSION_TEXT, CITATION_BUTTON_TEXT, CITATION_BUTTON_LABEL |
|
from dabstep_benchmark.leaderboard import * |
|
|
|
|
|
def restart_space(): |
|
HF_API.restart_space(repo_id=HF_LEADERBOARD) |
|
|
|
|
|
if __name__ == "__main__": |
|
os.makedirs("data/task_scores", exist_ok=True) |
|
refresh(only_leaderboard=False) |
|
|
|
demo = gr.Blocks() |
|
with demo: |
|
gr.Markdown(TITLE) |
|
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text") |
|
|
|
leaderboard_table = gr.components.Dataframe( |
|
value=generate_leaderboard_df(), |
|
datatype=["markdown", "str", "str", "str", "markdown", "str", "str", "str"], |
|
interactive=False, |
|
column_widths=["20%"], |
|
wrap=True, |
|
) |
|
|
|
demo.load(lambda: generate_leaderboard_df(), None, leaderboard_table) |
|
|
|
refresh_button = gr.Button("Refresh") |
|
refresh_button.click( |
|
refresh, |
|
inputs=[ |
|
gr.Checkbox(value=True, visible=False) |
|
], |
|
outputs=[ |
|
leaderboard_table, |
|
], |
|
) |
|
with gr.Row(): |
|
with gr.Accordion("π Citation", open=False): |
|
citation_button = gr.Textbox( |
|
value=CITATION_BUTTON_TEXT, |
|
label=CITATION_BUTTON_LABEL, |
|
lines=len(CITATION_BUTTON_TEXT.split("\n")), |
|
elem_id="citation-button", |
|
) |
|
|
|
with gr.Accordion("Submit new agent answers for evaluation"): |
|
with gr.Row(): |
|
gr.Markdown(SUBMISSION_TEXT, elem_classes="markdown-text") |
|
with gr.Row(): |
|
with gr.Column(): |
|
split = gr.Radio(["all"], value="all", label="Split", visible=False) |
|
agent_name_textbox = gr.Textbox(label="Agent name") |
|
model_family_textbox = gr.Textbox(label="Model family") |
|
system_prompt_textbox = gr.Textbox(label="System prompt example") |
|
repo_url_textbox = gr.Textbox(label="Repo URL with agent code") |
|
with gr.Column(): |
|
organisation = gr.Textbox(label="Organisation") |
|
mail = gr.Textbox( |
|
label="Contact email (will be stored privately, & used if there is an issue with your submission)") |
|
file_output = gr.File() |
|
|
|
submit_button = gr.Button("Submit answers") |
|
submission_result = gr.Markdown() |
|
submit_button.click( |
|
process_submission, |
|
[ |
|
split, |
|
agent_name_textbox, |
|
model_family_textbox, |
|
repo_url_textbox, |
|
file_output, |
|
organisation, |
|
mail |
|
], |
|
submission_result, |
|
) |
|
|
|
scheduler = BackgroundScheduler() |
|
scheduler.add_job(restart_space, "interval", seconds=3600) |
|
scheduler.start() |
|
demo.launch(debug=True) |
|
|
|
|