Spaces:
Sleeping
Sleeping
Yoon-gu Hwang
commited on
Commit
·
c98c5d7
1
Parent(s):
92933b9
다수의 사용자 고려
Browse files
app.py
CHANGED
@@ -1,13 +1,21 @@
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
with gr.Blocks() as demo:
|
5 |
dataset_df = {}
|
6 |
-
state = gr.State(value
|
7 |
with gr.Row():
|
8 |
gr.Markdown("# Distributed Evaluation Parallel 😎")
|
9 |
with gr.Row():
|
10 |
-
file = gr.File(label="Upload a file")
|
11 |
prev = gr.Button(value="Previous")
|
12 |
next = gr.Button(value="Next")
|
13 |
download = gr.File(label="Download a file")
|
@@ -20,44 +28,41 @@ with gr.Blocks() as demo:
|
|
20 |
prediction = gr.Textbox(label="Prediction")
|
21 |
score = gr.Radio(choices=["Incorrect", "Correct"], label="Score")
|
22 |
with gr.Row():
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
df['score'] = None
|
30 |
-
df_dict = df.to_dict('records')
|
31 |
-
dataset_df.update(dict(df=df, df_dict=df_dict))
|
32 |
-
return update()
|
33 |
|
34 |
-
def prev_func(score):
|
35 |
-
df_dict =
|
36 |
state.value = max(state.value - 1, 0)
|
37 |
score = df_dict[state.value]['score']
|
38 |
-
gr.Info(f"총 {len(
|
39 |
-
return [*update(), score]
|
40 |
|
41 |
-
def next_func(score):
|
42 |
-
df_dict =
|
43 |
df_dict[state.value]['score'] = score
|
44 |
-
state.value = min(state.value + 1, len(
|
45 |
score = df_dict[state.value]['score']
|
46 |
-
gr.Info(f"총 {len(
|
47 |
-
return [*update(), score]
|
48 |
|
49 |
-
def update():
|
50 |
-
df_dict =
|
51 |
q = df_dict[state.value]['question']
|
52 |
g = df_dict[state.value]['answer']
|
53 |
p = df_dict[state.value]['prediction']
|
54 |
df = pd.DataFrame(df_dict)
|
55 |
todos = df[df.score.isna()]
|
56 |
done = df[df.score.isna() == False]
|
57 |
-
|
58 |
-
|
|
|
59 |
prev.click(prev_func, [score], [question, ground_truth, prediction, todos, done, download, score])
|
60 |
next.click(next_func, [score], [question, ground_truth, prediction, todos, done, download, score])
|
61 |
|
62 |
-
demo.queue()
|
63 |
-
demo.launch()
|
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
+
import random
|
4 |
+
|
5 |
+
USERS = ['user1', 'user2', 'user3']
|
6 |
+
df_per_user = {}
|
7 |
+
df = pd.read_csv("data.csv")
|
8 |
+
df['score'] = None
|
9 |
+
df['assignee'] = random.choices(USERS, k=len(df))
|
10 |
+
for u in USERS:
|
11 |
+
df_per_user[u] = df[df.assignee == u].to_dict('records')
|
12 |
|
13 |
with gr.Blocks() as demo:
|
14 |
dataset_df = {}
|
15 |
+
state = gr.State(value=-1)
|
16 |
with gr.Row():
|
17 |
gr.Markdown("# Distributed Evaluation Parallel 😎")
|
18 |
with gr.Row():
|
|
|
19 |
prev = gr.Button(value="Previous")
|
20 |
next = gr.Button(value="Next")
|
21 |
download = gr.File(label="Download a file")
|
|
|
28 |
prediction = gr.Textbox(label="Prediction")
|
29 |
score = gr.Radio(choices=["Incorrect", "Correct"], label="Score")
|
30 |
with gr.Row():
|
31 |
+
with gr.Column():
|
32 |
+
gr.Markdown("## TODO")
|
33 |
+
todos = gr.DataFrame()
|
34 |
+
with gr.Column():
|
35 |
+
gr.Markdown("## DONE")
|
36 |
+
done = gr.DataFrame()
|
|
|
|
|
|
|
|
|
37 |
|
38 |
+
def prev_func(score, request: gr.Request):
|
39 |
+
df_dict = df_per_user[request.username]
|
40 |
state.value = max(state.value - 1, 0)
|
41 |
score = df_dict[state.value]['score']
|
42 |
+
gr.Info(f"{request.username}님, 총 {len(df_dict)}개 중에 {state.value + 1}번째 데이터입니다.")
|
43 |
+
return [*update(request.username), score]
|
44 |
|
45 |
+
def next_func(score, request: gr.Request):
|
46 |
+
df_dict = df_per_user[request.username]
|
47 |
df_dict[state.value]['score'] = score
|
48 |
+
state.value = min(state.value + 1, len(df_dict) - 1)
|
49 |
score = df_dict[state.value]['score']
|
50 |
+
gr.Info(f"{request.username}님, 총 {len(df_dict)}개 중에 {state.value + 1}번째 데이터입니다.")
|
51 |
+
return [*update(request.username), score]
|
52 |
|
53 |
+
def update(username):
|
54 |
+
df_dict = df_per_user[username]
|
55 |
q = df_dict[state.value]['question']
|
56 |
g = df_dict[state.value]['answer']
|
57 |
p = df_dict[state.value]['prediction']
|
58 |
df = pd.DataFrame(df_dict)
|
59 |
todos = df[df.score.isna()]
|
60 |
done = df[df.score.isna() == False]
|
61 |
+
filename = f"done_{username}.csv"
|
62 |
+
done.to_csv(filename, index=False)
|
63 |
+
return q, g, p, todos, done, filename
|
64 |
prev.click(prev_func, [score], [question, ground_truth, prediction, todos, done, download, score])
|
65 |
next.click(next_func, [score], [question, ground_truth, prediction, todos, done, download, score])
|
66 |
|
67 |
+
demo.queue(concurrency_count=10)
|
68 |
+
demo.launch(auth=[(u, u) for u in USERS])
|
data.csv
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
,question,answer,prediction,score
|
2 |
+
0,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
3 |
+
1,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
4 |
+
2,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
5 |
+
3,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
6 |
+
4,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
7 |
+
5,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
8 |
+
6,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
9 |
+
7,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
10 |
+
8,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
11 |
+
9,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
12 |
+
10,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
13 |
+
11,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
14 |
+
12,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
15 |
+
13,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
16 |
+
14,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
17 |
+
15,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
18 |
+
16,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
19 |
+
17,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
20 |
+
18,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
21 |
+
19,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
22 |
+
20,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|
23 |
+
21,한국말로 인사 어떻게 해?,안녕하세요,반가워요1,
|
24 |
+
22,한국말로 인사 어떻게 해?,안녕하세요,반가워요2,
|
25 |
+
23,한국말로 인사 어떻게 해?,안녕하세요,반가워요3,
|