|
import json |
|
|
|
import gradio as gr |
|
import pandas as pd |
|
|
|
from css_html import custom_css |
|
from text_content import ABOUT_TEXT, CITATION_BUTTON_TEXT, CITATION_BUTTON_LABEL, ACKNOWLEDGEMENT_TEXT, NOTES_TEXT, HEAD_TEXT |
|
from utils import ( |
|
AutoEvalColumn, |
|
fields, |
|
) |
|
|
|
result_path = './STRUCT_RES.json' |
|
with open(result_path, 'r') as f: |
|
data = json.load(f) |
|
|
|
rows = [] |
|
for model in data: |
|
row = {"model": model} |
|
for key in data[model]: |
|
print(key) |
|
row[key] = round(data[model][key], 2) |
|
rows.append(row) |
|
|
|
df = pd.DataFrame(rows) |
|
df = df.sort_values(by='๐StructAverage', ascending=False) |
|
|
|
COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden] |
|
TYPES = [c.type for c in fields(AutoEvalColumn) if not c.hidden] |
|
|
|
COLS_LITE = [ |
|
c.name for c in fields(AutoEvalColumn) if c.displayed_by_default and not c.hidden |
|
] |
|
|
|
TYPES_LITE = [ |
|
c.type for c in fields(AutoEvalColumn) if c.displayed_by_default and not c.hidden |
|
] |
|
|
|
def select_columns(df, columns): |
|
always_here_cols = [ |
|
AutoEvalColumn.model.name, |
|
] |
|
|
|
filtered_df = df[ |
|
always_here_cols + [c for c in COLS if c in df.columns and c in columns] |
|
] |
|
return filtered_df |
|
|
|
demo = gr.Blocks(css=custom_css) |
|
with demo: |
|
with gr.Column(): |
|
gr.Markdown( |
|
"""<div style="text-align: center;"><h1> ๐
StructEval Leaderboard</h1></div>\ |
|
<br>\ |
|
""", |
|
elem_classes="markdown-text", |
|
) |
|
|
|
gr.Markdown(HEAD_TEXT, elem_classes="markdown-text") |
|
|
|
with gr.Tabs(elem_classes="tab-buttons") as tabs: |
|
with gr.Column(): |
|
with gr.Tabs(elem_classes="A100-tabs") as A100_tabs: |
|
with gr.TabItem("๐ Evaluation Table", id=0): |
|
with gr.Column(): |
|
with gr.Accordion("โฌ Hidden Columns", open=False): |
|
shown_columns = gr.CheckboxGroup( |
|
choices=[ |
|
c |
|
for c in COLS |
|
if c |
|
not in [ |
|
AutoEvalColumn.model.name, |
|
] |
|
], |
|
value=[ |
|
c |
|
for c in COLS_LITE |
|
if c |
|
not in [ |
|
AutoEvalColumn.model.name, |
|
] |
|
], |
|
label="", |
|
elem_id="column-select", |
|
interactive=True, |
|
) |
|
|
|
leaderboard_df = gr.components.Dataframe( |
|
value=df[ |
|
[ |
|
AutoEvalColumn.model.name, |
|
] |
|
+ shown_columns.value |
|
], |
|
headers=COLS, |
|
datatype=TYPES, |
|
elem_id="leaderboard-table", |
|
interactive=False, |
|
) |
|
|
|
hidden_leaderboard_df = gr.components.Dataframe( |
|
value=df, |
|
headers=COLS, |
|
datatype=["str" for _ in range(len(COLS))], |
|
visible=False, |
|
) |
|
|
|
shown_columns.change( |
|
select_columns, |
|
[hidden_leaderboard_df, shown_columns], |
|
leaderboard_df, |
|
) |
|
|
|
|
|
with gr.TabItem("๐ About", id=1): |
|
gr.Markdown(ABOUT_TEXT, elem_classes="markdown-text") |
|
|
|
with gr.Row(): |
|
with gr.Accordion("๐ Notes"): |
|
gr.Markdown(NOTES_TEXT, elem_classes="markdown-text") |
|
|
|
with gr.Row(): |
|
with gr.Accordion("๐ Citation", open=False): |
|
citation_button = gr.Textbox( |
|
value=CITATION_BUTTON_TEXT, |
|
label=CITATION_BUTTON_LABEL, |
|
lines=10, |
|
elem_id="citation-button", |
|
show_copy_button=True, |
|
) |
|
|
|
with gr.Row(): |
|
with gr.Accordion("๐ Acknowledgement", open=False): |
|
gr.Markdown(ACKNOWLEDGEMENT_TEXT) |
|
|
|
demo.launch() |