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,
|