Team Ai
Apppublic

CPunisher/JavaBench

sourceHugging Faceapache-2.0updated 2y agoView on Hugging Face
1likes
app.py90 linesDownload Raw Back to root
1import gradio as gr2import pandas as pd3import json4from gradio_leaderboard import Leaderboard, SelectColumns5from apscheduler.schedulers.background import BackgroundScheduler6 7from src.about import (8    CITATION_BUTTON_LABEL,9    CITATION_BUTTON_TEXT,10    EVALUATION_QUEUE_TEXT,11    INTRODUCTION_TEXT,12    TITLE,13)14from src.display.css_html_js import custom_css15from src.display.utils import (16    AutoEvalColumn,17    fields18)19from src.envs import API, REPO_ID20 21 22def restart_space():23    API.restart_space(repo_id=REPO_ID)24 25def init_leaderboard(data_file):26    with open(data_file, "r") as fp:27        data = json.load(fp)28 29        dataframe = pd.DataFrame()30        for key, value in data.items():31            col_df = pd.DataFrame(value)32            col_df.rename(columns={"Pass_at_1": key}, inplace=True)33            dataframe = col_df if dataframe.empty else dataframe.merge(col_df, on=['Context', 'Method', 'Model'], how='outer')34 35        dataframe['Score'] = dataframe.drop(columns=['Context', 'Method', 'Model']).sum(axis=1) / 536        numeric_cols = dataframe.select_dtypes(include='number').columns37        dataframe[numeric_cols] = dataframe[numeric_cols].apply(lambda x: x * 100).round(1)38 39        cols = list(dataframe.columns)40        cols.remove('Score')41        cols.insert(3, 'Score')42        dataframe = dataframe[cols]43        cols.insert(3, cols.pop(cols.index('Score')))44 45        dataframe = dataframe.sort_values(by='Score', ascending=False)46 47    return gr.components.DataFrame(48        value=dataframe,49        headers=[c.name for c in fields(AutoEvalColumn) if not c.hidden],50        datatype=[c.type for c in fields(AutoEvalColumn)],51        interactive=False,52    )53 54demo = gr.Blocks(css=custom_css)55with demo:56    gr.HTML(TITLE)57    gr.HTML(INTRODUCTION_TEXT, elem_classes="markdown-text")58 59    with gr.Tabs(elem_classes="tab-buttons") as tabs:60        with gr.TabItem("[Method] Evaluation", elem_id="llm-benchmark-tab-table", id=0):61            leaderboard = init_leaderboard("./data/data_method.json")62 63        with gr.TabItem("[Context] Evaluation", elem_id="llm-benchmark-tab-table", id=1):64            leaderboard = init_leaderboard("./data/data_context.json")65 66        with gr.TabItem("[Incremental] Evaluation", elem_id="llm-benchmark-tab-table", id=2):67            leaderboard = init_leaderboard("./data/data_incr-order.json")68 69        # with gr.TabItem("๐Ÿ“ About", elem_id="llm-benchmark-tab-table", id=2):70        #     gr.Markdown(LLM_BENCHMARKS_TEXT, elem_classes="markdown-text")71 72        with gr.TabItem("๐Ÿš€ Submission", elem_id="llm-benchmark-tab-table", id=3):73            with gr.Column():74                with gr.Row():75                    gr.Markdown(EVALUATION_QUEUE_TEXT, elem_classes="markdown-text")76 77    with gr.Row():78        with gr.Accordion("๐Ÿ“™ Citation", open=False):79            citation_button = gr.Textbox(80                value=CITATION_BUTTON_TEXT,81                label=CITATION_BUTTON_LABEL,82                lines=20,83                elem_id="citation-button",84                show_copy_button=True,85            )86 87scheduler = BackgroundScheduler()88scheduler.add_job(restart_space, "interval", seconds=1800)89scheduler.start()90demo.queue(default_concurrency_limit=40).launch()