import gradio as gr import pandas as pd import os from utils import construct_dataframe, MODELS, get_scores HF_TOKEN = os.getenv("HF_TOKEN") DATAFRAME: pd.DataFrame = construct_dataframe() MAX_LINES = 500 MIN_LINES = 10 def get_from_question_id_turn_2(model, question_id: int): new = DATAFRAME.loc[question_id] new = new[new["turn"] == 1] new = new[new["model"] == model] prompt_lighteval = new["prompt"].values[0] response_lighteval = new["response"].values[0] judgement_prompt_lighteval = new["judgement_prompt"].values[0] judgement_lighteval = new["judgment"].values[0] score_lighteval = new["score"].values[0] return prompt_lighteval, response_lighteval, judgement_prompt_lighteval[1]["content"], judgement_lighteval, score_lighteval def get_from_question_id_turn_1(model, question_id: int): new = DATAFRAME.loc[question_id] new = new[new["turn"] == 0] new = new[new["model"] == model] prompt_lighteval = new["prompt"].values[0] response_lighteval = new["response"].values[0] judgement_prompt_lighteval = new["judgement_prompt"].values[0] judgement_lighteval = new["judgment"].values[0] score_lighteval = new["score"].values[0] return prompt_lighteval, response_lighteval, judgement_prompt_lighteval[1]["content"], judgement_lighteval, score_lighteval with gr.Blocks() as demo: with gr.Row(): model = gr.Dropdown([model.split("__")[1] for model in MODELS], label="Model") index = gr.Dropdown(set(DATAFRAME.index.values.tolist()), label="Index", value=DATAFRAME.index.values.tolist()[0]) with gr.Row(): gr.DataFrame(get_scores(DATAFRAME).reset_index(), interactive=False, ) with gr.Row(): with gr.Column(): gr.Markdown("## Turn 1") score_lighteval = gr.Number(label="Score", interactive=False) prompt_lighteval = gr.Textbox( label="Prompt", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES ) response_lighteval = gr.Textbox(label="Response", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) judgement_prompt_lighteval = gr.Textbox(label="Judgement Prompt", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) judgement_lighteval = gr.Textbox(label="Judgement", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) with gr.Column(): gr.Markdown("## Turn 2") score_lighteval_2 = gr.Number(label="Score", interactive=False) prompt_lighteval_2 = gr.Textbox( label="Prompt", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES ) response_lighteval_2 = gr.Textbox(label="Response", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) judgement_prompt_lighteval_2 = gr.Textbox(label="Judgement Prompt", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) judgement_lighteval_2 = gr.Textbox(label="Judgement", interactive=False, max_lines=MAX_LINES, lines=MIN_LINES) index.change( fn=get_from_question_id_turn_1, inputs=[model, index], outputs=[prompt_lighteval, response_lighteval, judgement_prompt_lighteval, judgement_lighteval, score_lighteval], ) index.change( fn=get_from_question_id_turn_2, inputs=[model, index], outputs=[prompt_lighteval_2, response_lighteval_2, judgement_prompt_lighteval_2, judgement_lighteval_2, score_lighteval_2], ) model.change( fn=get_from_question_id_turn_2, inputs=[model, index], outputs=[prompt_lighteval_2, response_lighteval_2, judgement_prompt_lighteval_2, judgement_lighteval_2, score_lighteval_2], ) model.change( fn=get_from_question_id_turn_1, inputs=[model, index], outputs=[prompt_lighteval, response_lighteval, judgement_prompt_lighteval, judgement_lighteval, score_lighteval,], ) demo.launch()