File size: 3,315 Bytes
883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b 883eeae 5fc1f4b |
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 |
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,
)
# create a Gradio event listener that runs when the page is loaded to populate the dataframe
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",
) # .style(show_copy_button=True)
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)
|