File size: 2,794 Bytes
27bad72 9346f1c 460efe2 4596a70 8b1f7a0 01ea22b b98f07f b2373ad b98f07f 54eae7e 3b3db42 460efe2 98eb96a b98f07f 2a73469 10f9b3c 30dede7 fabb601 98eb96a a885f09 4103566 bc7425f 4103566 98eb96a bc7425f 4103566 beaaa9e 27bad72 f6475aa bc7425f b2373ad 58733e4 d4ccaf3 10f9b3c 8daa060 65af9f4 bc7425f 7e8ac0e 65af9f4 d4ccaf3 e7226cc 27bad72 f7d1b51 71f25ab f7d1b51 818f024 f7d1b51 10f9b3c 511c060 10f9b3c bc7425f |
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 |
import io
import gradio as gr
from gradio_leaderboard import Leaderboard
from apscheduler.schedulers.background import BackgroundScheduler
from src.about import (
CITATION_BUTTON_LABEL,
CITATION_BUTTON_TEXT,
INTRODUCTION_TEXT,
LLM_BENCHMARKS_TEXT,
TITLE,
TITLE_IMAGE,
)
from src.display.css_html_js import custom_css
from src.display.utils import (
BENCHMARK_COLS,
COLS,
AutoEvalColumn,
fields,
)
from src.envs import API, EVAL_RESULTS_PATH, REPO_ID
from src.populate import get_leaderboard_df
def restart_space():
API.restart_space(repo_id=REPO_ID)
LEADERBOARD_DF = get_leaderboard_df(EVAL_RESULTS_PATH, COLS, BENCHMARK_COLS)
def init_leaderboard(dataframe):
if dataframe is None or dataframe.empty:
raise ValueError("Leaderboard DataFrame is empty or None.")
return Leaderboard(
value=dataframe,
datatype=[c.type for c in fields(AutoEvalColumn)],
search_columns=[AutoEvalColumn.model.name],
interactive=False
)
def download_csv():
with io.StringIO() as buffer:
LEADERBOARD_DF.to_csv(buffer, index=False)
return buffer.getvalue()
gui = gr.Blocks(css=custom_css)
with gui:
gr.HTML(TITLE_IMAGE)
gr.HTML(TITLE)
gr.Markdown(INTRODUCTION_TEXT, elem_classes="markdown-text")
with gr.Tabs(elem_classes="tab-buttons") as tabs:
with gr.TabItem("π
LLM Benchmark", elem_id="llm-benchmark-tab-table", id=0):
leaderboard = init_leaderboard(LEADERBOARD_DF.style.highlight_max(color = 'lightgreen', axis=0).data)
with gr.TabItem("π About", elem_id="llm-benchmark-tab-table", id=2):
gr.Markdown(LLM_BENCHMARKS_TEXT, elem_classes="markdown-text")
with gr.Row():
with gr.Accordion("πΎ Download as CSV", open=False):
download_button = gr.Button("Click to Generate CSV File")
csv_output = gr.File(label="Generated File")
def generate_csv_file():
csv_content = download_csv()
csv_output.visible=True
with open("bluebench.csv", "w", encoding="utf-8") as f:
f.write(csv_content)
return "bluebench.csv"
download_button.click(fn=generate_csv_file, outputs=csv_output)
with gr.Row():
with gr.Accordion("π Citation", open=False):
citation_button = gr.Textbox(
value=CITATION_BUTTON_TEXT,
label=CITATION_BUTTON_LABEL,
lines=20,
elem_id="citation-button",
show_copy_button=True,
)
scheduler = BackgroundScheduler()
scheduler.add_job(restart_space, "interval", seconds=1800)
scheduler.start()
gui.queue(default_concurrency_limit=40).launch() |