Spaces:
Runtime error
Runtime error
# import libraries | |
import gradio as gr | |
import pandas as pd | |
#load json file into a dataframe | |
path="suspicious_samples_run3.jsonl" | |
df = pd.read_json(path_or_buf=path, lines=True) | |
# iterate through the responses and create a new dataframe | |
def iterate_responses(df): | |
data = [] | |
for i in range(len(df)): | |
for j in range(len(df['responses'][i])): | |
prompt = str(df['prompt'][i]) | |
response = str(df['responses'][i][j]) | |
judgements = df['per_response_judgements'][i][j] | |
judgement_1 = str(judgements[0]['reason']) if len(judgements) > 0 else "No Judgement Given" | |
judgement_2 = str(judgements[1]['reason']) if len(judgements) > 1 else "No Judgement Given" | |
judgement_3 = str(judgements[2]['reason']) if len(judgements) > 2 else "No Judgement Given" | |
rubric_1 = str(judgements[0]['rubric']) if len(judgements) > 0 else "No Rubric Given" | |
rubric_2 = str(judgements[1]['rubric']) if len(judgements) > 1 else "No Rubric Given" | |
rubric_3 = str(judgements[2]['rubric']) if len(judgements) > 2 else "No Rubric Given" | |
score_1 = str(judgements[0]['score']) if len(judgements) > 0 else "No Score Given" | |
score_2 = str(judgements[1]['score']) if len(judgements) > 1 else "No Score Given" | |
score_3 = str(judgements[2]['score']) if len(judgements) > 2 else "No Score Given" | |
data.append([prompt, response, judgement_1, judgement_2, judgement_3, rubric_1, rubric_2, rubric_3, score_1, score_2, score_3]) | |
df_resp = pd.DataFrame(data, columns=["prompt", "response", "judgement_1", "judgement_2", "judgement_3", "rubric_1", "rubric_2", "rubric_3", "score_1", "score_2", "score_3"]) | |
return df_resp | |
df_resps = iterate_responses(df) | |
# function to get response at index i | |
def response_at_index_i(i): | |
prompt = df_resps["prompt"][i] | |
response = df_resps["response"][i] | |
judgement_1 = df_resps["judgement_1"][i] | |
judgement_2 = df_resps["judgement_2"][i] | |
judgement_3 = df_resps["judgement_3"][i] | |
rubric_1 = df_resps["rubric_1"][i] | |
rubric_2 = df_resps["rubric_2"][i] | |
rubric_3 = df_resps["rubric_3"][i] | |
score_1 = df_resps["score_1"][i] | |
score_2 = df_resps["score_2"][i] | |
score_3 = df_resps["score_3"][i] | |
return prompt, response, judgement_1, judgement_2, judgement_3, rubric_1, rubric_2, rubric_3, score_1, score_2, score_3 | |
# function to get next index | |
def nxt(num): | |
if num < 0 or num > len(df_resps) - 2: | |
return 0 | |
return num + 1 | |
# function to get previous index | |
def prv(num): | |
if num <= 0: | |
return len(df_resps) - 2 | |
elif num > len(df_resps) - 2: | |
return 0 | |
return num - 1 | |
# create a gradio interface | |
demo = gr.Blocks(title='Group1_Subtask2') | |
# gradio interface | |
with demo: | |
gr.Markdown( | |
""" | |
# Group1 Phase 2 | |
## Read from JSON | |
""" | |
) | |
with gr.Row(): | |
with gr.Column(scale=1): | |
nxt_prv_value = gr.Number(label="a", visible=True) | |
prompt = gr.Textbox(label='Model Prompt') | |
with gr.Row(): | |
prv_btn = gr.Button("Previous") | |
nxt_btn = gr.Button("Next") | |
with gr.Row(): | |
with gr.Column(scale=1): | |
with gr.Row(): | |
response = gr.Textbox(label='AI Answer') | |
judgement_1 = gr.Textbox(label='Reference Answer') | |
# with gr.Column(scale=1): | |
with gr.Row(): | |
rubric_1 = gr.Textbox(label='Rubric') | |
rubric_2 = gr.Textbox(label='Rubric') | |
rubric_3 = gr.Textbox(label='Rubric') | |
with gr.Row(): | |
judgement_1 = gr.Textbox(label='Judger 1') | |
judgement_2 = gr.Textbox(label='Judger 2') | |
judgement_3 = gr.Textbox(label='Judger 3') | |
with gr.Row(): | |
score_1 = gr.Number() | |
score_2 = gr.Number() | |
score_3 = gr.Number() | |
with gr.Row(): | |
score_1_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 1") | |
score_2_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 2") | |
score_3_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 3") | |
with gr.Row(): | |
submit = gr.Button("Submit") | |
nxt_btn.click(nxt, nxt_prv_value, nxt_prv_value) | |
prv_btn.click(prv, nxt_prv_value, nxt_prv_value) | |
history = gr.Textbox(label='History') | |
nxt_prv_value.change(response_at_index_i, nxt_prv_value, outputs=[prompt, response, judgement_1, judgement_2, judgement_3, rubric_1, rubric_2, rubric_3, score_1, score_2, score_3]) | |
demo.launch(share=True) | |
# Team Members | |
''' | |
Collins Okoth: collins.okech@digitaldividedata.com | |
Albert Disi: albert.disi@digitaldividedata.com | |
Joseph Amadi: joseph.amadi@digitaldividedata.com | |
''' |