# gradio display leaderboard import pandas as pd import numpy as np import matplotlib # matplotlib.use('macosx') import gradio as gr import matplotlib.pyplot as plt import plotly.graph_objects as go from apscheduler.schedulers.background import BackgroundScheduler from texts import INTRODUCTION_TEXT, TITLE df_lang = { 'en': pd.DataFrame({ 'name': ['GPT-3', 'T5', 'BERT', 'RoBERTa', 'XLNet'], 'score': [0.75, 0.72, 0.68, 0.65, 0.62], 'rank': [1, 2, 3, 4, 5] }), 'zh': pd.DataFrame({ 'name': ['GPT-3', 'T5', 'BERT', 'RoBERTa', 'XLNet'], 'score': [0.75, 0.72, 0.68, 0.65, 0.62], 'rank': [1, 2, 3, 4, 5] }), } def create_lang_leader_board(df): headers = df.columns types = ["str"] + ["number"] * (len(headers) - 1) return gr.components.Dataframe( value=df.values.tolist(), headers=[col_name for col_name in headers], datatype=types, # max_rows=10, ) def launch_gradio(): demo = gr.Blocks() with demo: gr.HTML(TITLE) gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text") for key, df in df_lang.items(): with gr.Tab(key): create_lang_leader_board(df) demo.launch() scheduler = BackgroundScheduler() scheduler.add_job(launch_gradio, 'interval', hours=1) scheduler.start() launch_gradio()