bishmoy's picture
building initial leaderboard
50d66f5 verified
raw
history blame
2.66 kB
import gradio as gr
from utils import *
import os
from leaderboard import build_leaderboard
def build_demo():
with gr.Blocks() as demo:
state = gr.State()
with gr.Tab("Song Generation", id=0):
gr.Markdown("# πŸ† Arena Elo\nFind out who is the πŸ₯‡ song generation models!")
with gr.Row():
with gr.Column():
gr.Markdown("### πŸ‘‡ Generating now!")
with gr.Row():
with gr.Column():
model_selector = gr.Markdown("", visible=True)
with gr.Row():
with gr.Column():
heard_btn = gr.Button(
value="🚩 Heard this song before", visible=False, interactive=False
)
audio = gr.Audio(show_download_button = False)
with gr.Row():
real_btn = gr.Button(value="🀝 Real", visible=False, interactive=False)
fake_btn = gr.Button(
value="πŸ‘ˆ Fake", visible=False, interactive=False
)
btn_list = [fake_btn, real_btn, heard_btn]
fake_btn.click(
fake_last_response,
inputs=[state],
outputs=[fake_btn, real_btn, heard_btn, model_selector]
)
real_btn.click(
real_last_response,
inputs=[state],
outputs=[fake_btn, real_btn, heard_btn, model_selector]
)
heard_btn.click(generate_songs, state, [state, audio, model_selector])
new_round_button = gr.Button("New Round")
new_round_button.click(generate_songs, state, [state, audio, model_selector]).then(
enable_buttons_side_by_side,
inputs=None,
outputs=btn_list
)
with gr.Tab("Leaderboard", id=1):
gr.Markdown("# πŸ† Leaderboard πŸ†")
gr.Dataframe(
headers=[
"⏱️ Duration",
"πŸ—³οΈ Votes",
"πŸ“Š Accuracy",
"Organization",
"License",
],
datatype=[
"str",
"number",
"number",
],
value=build_leaderboard().values,
height=700,
column_widths=[50, 200, 100, 100, 100, 150, 150],
wrap=True,
)
return demo
if __name__ == "__main__":
demo = build_demo()
demo.queue(max_size=20).launch(server_name="0.0.0.0")