jonghhhh commited on
Commit
990121a
ยท
verified ยท
1 Parent(s): c6a28d1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -33
app.py CHANGED
@@ -1,48 +1,78 @@
1
  import streamlit as st
2
  import pandas as pd
3
 
4
- # ์„ค๋ฌธ ์ œ๋ชฉ
5
- st.title("์‹ค์‹œ๊ฐ„ ์ˆ˜์—… ์„ค๋ฌธ์กฐ์‚ฌ")
 
6
 
7
- # ์„ค๋ฌธ ์งˆ๋ฌธ ์ž…๋ ฅ
8
- question = st.text_input("์„ค๋ฌธ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”:")
 
9
 
10
- # ์„ ํƒํ˜• ๋‹ต๋ณ€ ํ•ญ๋ชฉ ์ž…๋ ฅ
11
- options = st.text_area("์„ ํƒํ˜• ๋‹ต๋ณ€ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ•˜์„ธ์š” (๊ฐ ํ•ญ๋ชฉ์„ ์ƒˆ ์ค„์— ์ž…๋ ฅ):").split('\n')
12
 
13
- # ์ฃผ๊ด€์‹ ๋‹ต๋ณ€ ์ž…๋ ฅ ํ™œ์„ฑํ™”
14
- open_ended = st.checkbox("์ฃผ๊ด€์‹ ๋‹ต๋ณ€๋„ ํ—ˆ์šฉํ•˜๊ธฐ")
15
 
16
- # ๋‹ต๋ณ€ ์ˆ˜์ง‘
17
- if question and options:
18
- st.write("### ์„ค๋ฌธ ์ฐธ์—ฌ")
19
- selected_option = st.radio(question, options)
20
 
21
- if open_ended:
22
- open_answer = st.text_input("๊ธฐํƒ€ ์˜๊ฒฌ์ด ์žˆ์œผ๋ฉด ์ž…๋ ฅํ•˜์„ธ์š”:")
23
-
24
- # ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‹ต๋ณ€ ์ œ์ถœ
25
- if st.button("๋‹ต๋ณ€ ์ œ์ถœ"):
26
- # ์„ ํƒํ˜• ๋‹ต๋ณ€ ์ €์žฅ
27
- if 'responses' not in st.session_state:
28
  st.session_state['responses'] = []
29
 
30
- st.session_state['responses'].append({'์„ ํƒ': selected_option, '์ฃผ๊ด€์‹': open_answer if open_ended else None})
 
 
 
 
 
 
 
 
31
 
32
- # ๋‹ต๋ณ€ ๊ฒฐ๊ณผ ํ‘œ์‹œ
33
- if 'responses' in st.session_state:
34
- st.write("### ์„ค๋ฌธ ๊ฒฐ๊ณผ")
35
- df = pd.DataFrame(st.session_state['responses'])
36
 
37
- if not df.empty:
38
- st.write("#### ์„ ํƒํ˜• ๋‹ต๋ณ€ ๋ถ„ํฌ")
39
- st.bar_chart(df['์„ ํƒ'].value_counts()) # ์„ ํƒํ˜• ๋‹ต๋ณ€ ๋นˆ๋„๋ฅผ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œ
 
 
40
 
 
 
 
 
41
  if open_ended:
42
- st.write("#### ์ฃผ๊ด€์‹ ๋‹ต๋ณ€")
43
- st.table(df['์ฃผ๊ด€์‹'].dropna()) # ์ฃผ๊ด€์‹ ๋‹ต๋ณ€์„ ํ…Œ์ด๋ธ”๋กœ ํ‘œ์‹œ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
- # ๋ฆฌ์…‹ ๋ฒ„ํŠผ
46
- if st.button("์„ค๋ฌธ ์ดˆ๊ธฐํ™”"):
47
- st.session_state['responses'] = []
48
- st.experimental_rerun()
 
 
1
  import streamlit as st
2
  import pandas as pd
3
 
4
+ # ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ” ๋ฉ”๋‰ด ์ƒ์„ฑ
5
+ st.sidebar.title("๋ฉ”๋‰ด")
6
+ app_mode = st.sidebar.selectbox("์˜ต์…˜์„ ์„ ํƒํ•˜์„ธ์š”:", ["์„ค๋ฌธ ์„ค์ •", "์„ค๋ฌธ ์‘๋‹ต", "๊ฒฐ๊ณผ ํ™•์ธ"])
7
 
8
+ # ์„ค๋ฌธ ์„ค์ • ํŒŒํŠธ (๊ต์‚ฌ์šฉ)
9
+ if app_mode == "์„ค๋ฌธ ์„ค์ •":
10
+ st.title("์„ค๋ฌธ ์„ค์ •")
11
 
12
+ # ์„ค๋ฌธ ์งˆ๋ฌธ ์ž…๋ ฅ
13
+ question = st.text_input("์„ค๋ฌธ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜์„ธ์š”:")
14
 
15
+ # ์„ ํƒํ˜• ๋‹ต๋ณ€ ํ•ญ๋ชฉ ์ž…๋ ฅ
16
+ options = st.text_area("์„ ํƒํ˜• ๋‹ต๋ณ€ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ•˜์„ธ์š” (๊ฐ ํ•ญ๋ชฉ์„ ์ƒˆ ์ค„์— ์ž…๋ ฅ):").split('\n')
17
 
18
+ # ์ฃผ๊ด€์‹ ๋‹ต๋ณ€ ์ž…๋ ฅ ํ™œ์„ฑํ™”
19
+ open_ended = st.checkbox("์ฃผ๊ด€์‹ ๋‹ต๋ณ€๋„ ํ—ˆ์šฉํ•˜๊ธฐ")
 
 
20
 
21
+ # URL ์ƒ์„ฑ ๋ฐ ๊ณต์œ 
22
+ if st.button("์„ค๋ฌธ ์‹œ์ž‘"):
23
+ if question and options:
24
+ st.session_state['question'] = question
25
+ st.session_state['options'] = options
26
+ st.session_state['open_ended'] = open_ended
 
27
  st.session_state['responses'] = []
28
 
29
+ # ์„ค๋ฌธ URL ์ƒ์„ฑ
30
+ st.success("์„ค๋ฌธ์ด ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์—๊ฒŒ ์•„๋ž˜ URL์„ ๊ณต์œ ํ•˜์„ธ์š”:")
31
+ st.write(st.get_url())
32
+
33
+ # ๋ฆฌ์…‹ ๋ฒ„ํŠผ
34
+ if st.button("์„ค๋ฌธ ์ดˆ๊ธฐํ™”"):
35
+ for key in st.session_state.keys():
36
+ del st.session_state[key]
37
+ st.experimental_rerun()
38
 
39
+ # ์„ค๋ฌธ ์‘๋‹ต ํŒŒํŠธ (ํ•™์ƒ์šฉ)
40
+ elif app_mode == "์„ค๋ฌธ ์‘๋‹ต":
41
+ st.title("์ˆ˜์—… ์„ค๋ฌธ์กฐ์‚ฌ")
 
42
 
43
+ if 'question' in st.session_state and 'options' in st.session_state:
44
+ # ์„ค๋ฌธ ์งˆ๋ฌธ๊ณผ ์„ ํƒํ˜• ํ•ญ๋ชฉ ํ‘œ์‹œ
45
+ question = st.session_state['question']
46
+ options = st.session_state['options']
47
+ open_ended = st.session_state['open_ended']
48
 
49
+ st.write(f"### {question}")
50
+ selected_option = st.radio("๋‹ต๋ณ€์„ ์„ ํƒํ•˜์„ธ์š”:", options)
51
+
52
+ open_answer = None
53
  if open_ended:
54
+ open_answer = st.text_input("๊ธฐํƒ€ ์˜๊ฒฌ์ด ์žˆ์œผ๋ฉด ์ž…๋ ฅํ•˜์„ธ์š”:")
55
+
56
+ if st.button("๋‹ต๋ณ€ ์ œ์ถœ"):
57
+ st.session_state['responses'].append({'์„ ํƒ': selected_option, '์ฃผ๊ด€์‹': open_answer if open_ended else None})
58
+ st.success("๋‹ต๋ณ€์ด ์ œ์ถœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!")
59
+ else:
60
+ st.warning("ํ˜„์žฌ ์„ค๋ฌธ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”.")
61
+
62
+ # ๊ฒฐ๊ณผ ํ™•์ธ ํŒŒํŠธ (๊ต์‚ฌ์šฉ)
63
+ elif app_mode == "๊ฒฐ๊ณผ ํ™•์ธ":
64
+ st.title("์„ค๋ฌธ ๊ฒฐ๊ณผ ํ™•์ธ")
65
+
66
+ if 'responses' in st.session_state and st.session_state['responses']:
67
+ st.write("### ์„ค๋ฌธ ๊ฒฐ๊ณผ")
68
+ df = pd.DataFrame(st.session_state['responses'])
69
+
70
+ if not df.empty:
71
+ st.write("#### ์„ ํƒํ˜• ๋‹ต๋ณ€ ๋ถ„ํฌ")
72
+ st.bar_chart(df['์„ ํƒ'].value_counts()) # ์„ ํƒํ˜• ๋‹ต๋ณ€ ๋นˆ๋„๋ฅผ ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„๋กœ ํ‘œ์‹œ
73
 
74
+ if '์ฃผ๊ด€์‹' in df.columns:
75
+ st.write("#### ์ฃผ๊ด€์‹ ๋‹ต๋ณ€")
76
+ st.table(df['์ฃผ๊ด€์‹'].dropna()) # ์ฃผ๊ด€์‹ ๋‹ต๋ณ€์„ ํ…Œ์ด๋ธ”๋กœ ํ‘œ์‹œ
77
+ else:
78
+ st.warning("์•„์ง ์ œ์ถœ๋œ ๋‹ต๋ณ€์ด ์—†์Šต๋‹ˆ๋‹ค.")