Spaces:
Runtime error
Runtime error
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# import libraries
|
2 |
+
import gradio as gr
|
3 |
+
import pandas as pd
|
4 |
+
|
5 |
+
|
6 |
+
#load json file into a dataframe
|
7 |
+
path="suspicious_samples_run3.jsonl"
|
8 |
+
df = pd.read_json(path_or_buf=path, lines=True)
|
9 |
+
|
10 |
+
# iterate through the responses and create a new dataframe
|
11 |
+
def iterate_responses(df):
|
12 |
+
data = []
|
13 |
+
for i in range(len(df)):
|
14 |
+
for j in range(len(df['responses'][i])):
|
15 |
+
prompt = str(df['prompt'][i])
|
16 |
+
response = str(df['responses'][i][j])
|
17 |
+
judgements = df['per_response_judgements'][i][j]
|
18 |
+
judgement_1 = str(judgements[0]['reason']) if len(judgements) > 0 else "No Judgement Given"
|
19 |
+
judgement_2 = str(judgements[1]['reason']) if len(judgements) > 1 else "No Judgement Given"
|
20 |
+
judgement_3 = str(judgements[2]['reason']) if len(judgements) > 2 else "No Judgement Given"
|
21 |
+
rubric_1 = str(judgements[0]['rubric']) if len(judgements) > 0 else "No Rubric Given"
|
22 |
+
rubric_2 = str(judgements[1]['rubric']) if len(judgements) > 1 else "No Rubric Given"
|
23 |
+
rubric_3 = str(judgements[2]['rubric']) if len(judgements) > 2 else "No Rubric Given"
|
24 |
+
score_1 = str(judgements[0]['score']) if len(judgements) > 0 else "No Score Given"
|
25 |
+
score_2 = str(judgements[1]['score']) if len(judgements) > 1 else "No Score Given"
|
26 |
+
score_3 = str(judgements[2]['score']) if len(judgements) > 2 else "No Score Given"
|
27 |
+
|
28 |
+
data.append([prompt, response, judgement_1, judgement_2, judgement_3, rubric_1, rubric_2, rubric_3, score_1, score_2, score_3])
|
29 |
+
|
30 |
+
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"])
|
31 |
+
return df_resp
|
32 |
+
|
33 |
+
df_resps = iterate_responses(df)
|
34 |
+
|
35 |
+
# function to get response at index i
|
36 |
+
def response_at_index_i(i):
|
37 |
+
prompt = df_resps["prompt"][i]
|
38 |
+
response = df_resps["response"][i]
|
39 |
+
judgement_1 = df_resps["judgement_1"][i]
|
40 |
+
judgement_2 = df_resps["judgement_2"][i]
|
41 |
+
judgement_3 = df_resps["judgement_3"][i]
|
42 |
+
rubric_1 = df_resps["rubric_1"][i]
|
43 |
+
rubric_2 = df_resps["rubric_2"][i]
|
44 |
+
rubric_3 = df_resps["rubric_3"][i]
|
45 |
+
score_1 = df_resps["score_1"][i]
|
46 |
+
score_2 = df_resps["score_2"][i]
|
47 |
+
score_3 = df_resps["score_3"][i]
|
48 |
+
return prompt, response, judgement_1, judgement_2, judgement_3, rubric_1, rubric_2, rubric_3, score_1, score_2, score_3
|
49 |
+
|
50 |
+
# function to get next index
|
51 |
+
def nxt(num):
|
52 |
+
if num < 0 or num > len(df_resps) - 2:
|
53 |
+
return 0
|
54 |
+
return num + 1
|
55 |
+
# function to get previous index
|
56 |
+
def prv(num):
|
57 |
+
if num <= 0:
|
58 |
+
return len(df_resps) - 2
|
59 |
+
elif num > len(df_resps) - 2:
|
60 |
+
return 0
|
61 |
+
return num - 1
|
62 |
+
|
63 |
+
|
64 |
+
# create a gradio interface
|
65 |
+
demo = gr.Blocks(title='Group1_Subtask2')
|
66 |
+
|
67 |
+
# gradio interface
|
68 |
+
with demo:
|
69 |
+
|
70 |
+
gr.Markdown(
|
71 |
+
"""
|
72 |
+
# Group1 Phase 2
|
73 |
+
## Read from JSON
|
74 |
+
"""
|
75 |
+
)
|
76 |
+
|
77 |
+
with gr.Row():
|
78 |
+
with gr.Column(scale=1):
|
79 |
+
nxt_prv_value = gr.Number(label="a", visible=True)
|
80 |
+
prompt = gr.Textbox(label='Model Prompt')
|
81 |
+
|
82 |
+
|
83 |
+
with gr.Row():
|
84 |
+
prv_btn = gr.Button("Previous")
|
85 |
+
nxt_btn = gr.Button("Next")
|
86 |
+
|
87 |
+
with gr.Row():
|
88 |
+
with gr.Column(scale=1):
|
89 |
+
with gr.Row():
|
90 |
+
response = gr.Textbox(label='AI Answer')
|
91 |
+
judgement_1 = gr.Textbox(label='Reference Answer')
|
92 |
+
# with gr.Column(scale=1):
|
93 |
+
with gr.Row():
|
94 |
+
rubric_1 = gr.Textbox(label='Rubric')
|
95 |
+
rubric_2 = gr.Textbox(label='Rubric')
|
96 |
+
rubric_3 = gr.Textbox(label='Rubric')
|
97 |
+
with gr.Row():
|
98 |
+
judgement_1 = gr.Textbox(label='Judger 1')
|
99 |
+
judgement_2 = gr.Textbox(label='Judger 2')
|
100 |
+
judgement_3 = gr.Textbox(label='Judger 3')
|
101 |
+
|
102 |
+
with gr.Row():
|
103 |
+
|
104 |
+
score_1 = gr.Number()
|
105 |
+
score_2 = gr.Number()
|
106 |
+
score_3 = gr.Number()
|
107 |
+
|
108 |
+
with gr.Row():
|
109 |
+
|
110 |
+
score_1_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 1")
|
111 |
+
score_2_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 2")
|
112 |
+
score_3_g = gr.Radio(["1", "2", "3", "4", "5"], label="Confirm Score 3")
|
113 |
+
with gr.Row():
|
114 |
+
submit = gr.Button("Submit")
|
115 |
+
nxt_btn.click(nxt, nxt_prv_value, nxt_prv_value)
|
116 |
+
prv_btn.click(prv, nxt_prv_value, nxt_prv_value)
|
117 |
+
history = gr.Textbox(label='History')
|
118 |
+
|
119 |
+
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])
|
120 |
+
|
121 |
+
|
122 |
+
|
123 |
+
|
124 |
+
|
125 |
+
demo.launch(share=True)
|
126 |
+
|
127 |
+
# Team Members
|
128 |
+
'''
|
129 |
+
Collins Okoth: collins.okech@digitaldividedata.com
|
130 |
+
Albert Disi: albert.disi@digitaldividedata.com
|
131 |
+
Joseph Amadi: joseph.amadi@digitaldividedata.com
|
132 |
+
'''
|