JUNGU commited on
Commit
a0de072
โ€ข
1 Parent(s): 0feef53

add point system

Browse files
Files changed (1) hide show
  1. app.py +66 -11
app.py CHANGED
@@ -8,6 +8,22 @@ openai.api_key = os.getenv("OPENAI_API_KEY") # ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์ฃผ์„ ํ•ด
8
  st.set_page_config(layout="wide")
9
 
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  col, _ = st.columns(2)
12
 
13
  def display_passage(col):
@@ -43,7 +59,8 @@ def display_summary(col):
43
 
44
  with cols[1]:
45
  btn_score = st.button("์ฑ„์ ํ•˜๊ธฐ")
46
- if btn_score:
 
47
  #๋ฃจ๋ธŒ๋ฆญ์— ์˜ํ•œ ์ฑ„์ 
48
  lubric = """์ฑ„์  ๊ธฐ์ค€ ์ƒ: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ฃผ์š” ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋‹ค."""
49
  #๋ฃจ๋ธŒ๋ฆญ ๊ธฐ์ค€์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ์นธ์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์„ ์ฑ„์ ํ•˜๋Š” ์˜์–ด๋กœ ํ”„๋กฌํ”„ํŠธ
@@ -62,6 +79,12 @@ def display_summary(col):
62
 
63
  explanation = response['choices'][0]['message']['content']
64
  st.write(f"์ฑ„์  ํ•˜๊ธฐ: {explanation}")
 
 
 
 
 
 
65
 
66
  def display_input_btns(col):
67
  st.header("์ธ๊ณต์ง€๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ")
@@ -72,7 +95,8 @@ def display_input_btns(col):
72
  cols = st.columns(4)
73
  with cols[0]:
74
  btn_keyword = st.button("ํ‚ค์›Œ๋“œ ์ฐพ๊ธฐ")
75
- if btn_keyword:
 
76
  #๋‹ค๋ฅธ ์ง€๋ฌธ ๋„ฃ๊ธฐ
77
  highlighted_text = """**๋ฏผ์ฃผ์ฃผ์˜ ์‚ฌํšŒ**๋Š” ๊ตญ๋ฏผ์ด ์ •์น˜์— ์ฐธ์—ฌํ•  ๊ถŒ๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ถŒ๋ฆฌ๋ฅผ **์ฐธ์ •๊ถŒ**์ด๋ผ ํ•˜๋Š”๋ฐ, ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ โ€˜์„ ๊ฑฐโ€™๋กœ ์‹คํ˜„๋œ๋‹ค. ์„ ๊ฑฐ๋Š” ์‚ฌํšŒ ์ง‘๋‹จ์˜ ๋Œ€ํ‘œ์ž๋‚˜ ๊ณต์ง์ž๋ฅผ ์„ ์ถœํ•˜์—ฌ ๊ทธ๋“ค์—๊ฒŒ ๋Œ€ํ‘œ์„ฑ์„ ๋ถ€์—ฌํ•˜๋Š” ํ–‰์œ„์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ **๋†’์€ ํˆฌํ‘œ์œจ**์€ ๋ฏผ์ฃผ์ฃผ์˜์˜ **์ •๋‹น์„ฑ ํ™•๋ณด**์™€ ๊นŠ์€ ๊ด€๋ จ์ด ์žˆ๋‹ค.
78
 
@@ -82,25 +106,39 @@ def display_input_btns(col):
82
 
83
  ๋ฐ˜๋ฉด **์˜๋ฌด ํˆฌํ‘œ์ œ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ธก**์€ ํ˜„์žฌ ์šฐ๋ฆฌ๋‚˜๋ผ์˜ ํˆฌํ‘œ์œจ์ด ์ •์น˜ ์ง€๋„์ž๋“ค์˜ ๋Œ€ํ‘œ์„ฑ์„ ํ›ผ์†ํ•  ๋งŒํผ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ฃผ์žฅํ•œ๋‹ค. ๋˜ ํˆฌํ‘œ์œจ์„ ๋†’์ด๋Š” ๊ฒƒ๋ณด๋‹ค **๊ตญ๋ฏผ์˜ ์‹ ๋ขฐ๋ฅผ ํšŒ๋ณต**ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๊ณ , ์‹œ๋ฏผ ๊ต์œก์ด๋‚˜ ๋ชจ์˜ ํˆฌํ‘œ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋„ ํˆฌํ‘œ์œจ ์ƒ์Šน์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์˜๋ฌด ํˆฌํ‘œ์ œ์˜ ๋„์ž…๋งŒ์ด ํˆฌํ‘œ์œจ์ด๋‚˜ ์ •์น˜์  ๊ด€์‹ฌ์„ ๋†’์ด๋Š” ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜๋ฌด ํˆฌํ‘œ์ œ๋ฅผ ๋„์ž…ํ•˜๋ฉด, ์„ ์ถœ๋œ ์ •์น˜์ธ๋“ค์ด ๋†’์€ ํˆฌํ‘œ์œจ์„ ํ•‘๊ณ„๋กœ **์•ˆํ•˜๋ฌด์ธ์˜ ํƒœ๋„**๋ฅผ ๊ฐ–๋Š” ๋ถ€์ž‘์šฉ์ด ์ƒ๊ธด๋‹ค๋“ ๊ฐ€ ํ›„๋ณด์ž๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ํˆฌํ‘œํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์—ฌ **๊ตญ๋ฏผ์˜ ๋œป์ด ์˜คํžˆ๋ ค ์™œ๊ณก**๋  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์šฐ๋ ค์˜ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ณ  ์žˆ๋‹ค.
84
  """
 
 
 
85
 
86
  # ๊ธฐ์กด ์ง€๋ฌธ ์ง€์šฐ๊ธฐ
87
  text_placeholder.empty()
88
- # ์ƒˆ๋กœ์šด ๋‚ด์šฉ ๋„ฃ๊ธฐ
89
  with text_container:
90
- st.markdown(highlighted_text)
 
 
 
 
 
91
 
92
  with cols[1]:
93
  global btn_explanation
94
  btn_explanation= st.button("์ถ”๊ฐ€ ์„ค๋ช…")
95
-
 
 
96
  with cols[2]:
97
  global btn_simple
98
  btn_simple = st.button("์‰ฌ์šด ํ‘œํ˜„")
 
 
99
 
100
 
101
  with cols[3]:
102
  global btn_rewrite
103
  btn_rewrite = st.button("๋‹ค์‹œ ์“ฐ๊ธฐ")
 
 
104
 
105
 
106
  return btn_keyword, btn_explanation, btn_simple, btn_rewrite
@@ -109,7 +147,7 @@ def display_input_btns(col):
109
  def display_output():
110
  with st.container():
111
  st.header("๊ฒฐ๊ณผ")
112
- if btn_explanation:
113
  explanation_task = f"Explain the term '{user_input}' in a simple manner, based on the context of the following passage: {user_text}"
114
 
115
  messages = [
@@ -129,8 +167,14 @@ def display_output():
129
  # ์ถ”๊ฐ€ ์„ค๋ช…
130
  st.write(f"์ถ”๊ฐ€ ์„ค๋ช…: {explanation}")
131
  pass
 
 
 
 
132
 
133
- if btn_simple:
 
 
134
  explanation_task = f"Describe the fingerprint of '{user_text}' in a way that an elementary school student could understand."
135
 
136
  messages = [
@@ -150,8 +194,12 @@ def display_output():
150
  # ์‰ฌ์šด ํ‘œํ˜„์œผ๋กœ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
151
  st.write(f"์‰ฌ์šด ๊ธ€: {explanation}")
152
  pass
 
 
 
 
153
 
154
- if btn_rewrite:
155
  explanation_task = f"Rewrite the contents of '{user_input}' so that it will pass the writing test."
156
 
157
  messages = [
@@ -169,13 +217,19 @@ def display_output():
169
  explanation = response['choices'][0]['message']['content']
170
 
171
  st.write(f"๋‹ค์‹œ ์“ฐ๊ธฐ: {explanation}")
 
 
 
 
172
 
173
- #๊ฒฐ๊ณผ ๋ถ€๋ถ„์— ๋ฒ„ํŠผ ์ถœ๋ ฅ ์ถ”๊ฐ€
174
 
175
 
176
  def main():
177
  st.title("ํ•œ๊ตญ์–ด ํ•™์Šต์ž๋ฅผ ์œ„ํ•œ HCI tools")
178
-
 
 
179
  col1, col2 = st.columns(2)
180
 
181
  with col1:
@@ -184,7 +238,8 @@ def main():
184
  with col2:
185
  btn_keyword, btn_explanation, btn_simple, btn_rewrite = display_input_btns(col2)
186
  display_output()
187
-
 
188
 
189
 
190
  if __name__ == "__main__":
 
8
  st.set_page_config(layout="wide")
9
 
10
 
11
+ ## ํฌ์ธํŠธ ๋ถ€๋ถ„ ์ถ”๊ฐ€
12
+ if 'points' not in st.session_state:
13
+ st.session_state.points = 3
14
+
15
+ def update_points(value):
16
+ """ ํฌ์ธํŠธ ์—…๋ฐ์ดํŠธ """
17
+ st.session_state.points += value
18
+ # display_points() # ํฌ์ธํŠธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ ์œ„ํ•ด
19
+
20
+ def display_points():
21
+ """ ํฌ์ธํŠธ ํ‘œ์‹œ """
22
+ st.sidebar.header(f"Current Points: {st.session_state.points}")
23
+
24
+
25
+
26
+ ##๊ธฐ๋Šฅ์„ ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ตฌํ˜„
27
  col, _ = st.columns(2)
28
 
29
  def display_passage(col):
 
59
 
60
  with cols[1]:
61
  btn_score = st.button("์ฑ„์ ํ•˜๊ธฐ")
62
+ if btn_score and st.session_state.points > 0: # ํฌ์ธํŠธ ์ฒดํฌ
63
+ update_points(1) # ํฌ์ธํŠธ ์ฆ๊ฐ€
64
  #๋ฃจ๋ธŒ๋ฆญ์— ์˜ํ•œ ์ฑ„์ 
65
  lubric = """์ฑ„์  ๊ธฐ์ค€ ์ƒ: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ์ฃผ์š” ๋‚ด์šฉ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค‘: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜: ๋ฌธ์žฅ์˜ ์ฃผ์ œ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์—†๋‹ค."""
66
  #๋ฃจ๋ธŒ๋ฆญ ๊ธฐ์ค€์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ์นธ์— ์ž…๋ ฅํ•œ ๋‚ด์šฉ์„ ์ฑ„์ ํ•˜๋Š” ์˜์–ด๋กœ ํ”„๋กฌํ”„ํŠธ
 
79
 
80
  explanation = response['choices'][0]['message']['content']
81
  st.write(f"์ฑ„์  ํ•˜๊ธฐ: {explanation}")
82
+ pass
83
+ else:
84
+ if st.session_state.points == 0:
85
+ #ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ๊ตฌ ์ถ”๊ฐ€
86
+ st.write("ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์ฑ„์ ํ•˜๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
87
+ pass
88
 
89
  def display_input_btns(col):
90
  st.header("์ธ๊ณต์ง€๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ")
 
95
  cols = st.columns(4)
96
  with cols[0]:
97
  btn_keyword = st.button("ํ‚ค์›Œ๋“œ ์ฐพ๊ธฐ")
98
+ if btn_keyword and st.session_state.points > 0: # ํฌ์ธํŠธ ์ฒดํฌ
99
+ update_points(-1) # ํฌ์ธํŠธ ๊ฐ์†Œ
100
  #๋‹ค๋ฅธ ์ง€๋ฌธ ๋„ฃ๊ธฐ
101
  highlighted_text = """**๋ฏผ์ฃผ์ฃผ์˜ ์‚ฌํšŒ**๋Š” ๊ตญ๋ฏผ์ด ์ •์น˜์— ์ฐธ์—ฌํ•  ๊ถŒ๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ถŒ๋ฆฌ๋ฅผ **์ฐธ์ •๊ถŒ**์ด๋ผ ํ•˜๋Š”๋ฐ, ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ โ€˜์„ ๊ฑฐโ€™๋กœ ์‹คํ˜„๋œ๋‹ค. ์„ ๊ฑฐ๋Š” ์‚ฌํšŒ ์ง‘๋‹จ์˜ ๋Œ€ํ‘œ์ž๋‚˜ ๊ณต์ง์ž๋ฅผ ์„ ์ถœํ•˜์—ฌ ๊ทธ๋“ค์—๊ฒŒ ๋Œ€ํ‘œ์„ฑ์„ ๋ถ€์—ฌํ•˜๋Š” ํ–‰์œ„์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ **๋†’์€ ํˆฌํ‘œ์œจ**์€ ๋ฏผ์ฃผ์ฃผ์˜์˜ **์ •๋‹น์„ฑ ํ™•๋ณด**์™€ ๊นŠ์€ ๊ด€๋ จ์ด ์žˆ๋‹ค.
102
 
 
106
 
107
  ๋ฐ˜๋ฉด **์˜๋ฌด ํˆฌํ‘œ์ œ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ธก**์€ ํ˜„์žฌ ์šฐ๋ฆฌ๋‚˜๋ผ์˜ ํˆฌํ‘œ์œจ์ด ์ •์น˜ ์ง€๋„์ž๋“ค์˜ ๋Œ€ํ‘œ์„ฑ์„ ํ›ผ์†ํ•  ๋งŒํผ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ฃผ์žฅํ•œ๋‹ค. ๋˜ ํˆฌํ‘œ์œจ์„ ๋†’์ด๋Š” ๊ฒƒ๋ณด๋‹ค **๊ตญ๋ฏผ์˜ ์‹ ๋ขฐ๋ฅผ ํšŒ๋ณต**ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๊ณ , ์‹œ๋ฏผ ๊ต์œก์ด๋‚˜ ๋ชจ์˜ ํˆฌํ‘œ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋„ ํˆฌํ‘œ์œจ ์ƒ์Šน์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์˜๋ฌด ํˆฌํ‘œ์ œ์˜ ๋„์ž…๋งŒ์ด ํˆฌํ‘œ์œจ์ด๋‚˜ ์ •์น˜์  ๊ด€์‹ฌ์„ ๋†’์ด๋Š” ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜๋ฌด ํˆฌํ‘œ์ œ๋ฅผ ๋„์ž…ํ•˜๋ฉด, ์„ ์ถœ๋œ ์ •์น˜์ธ๋“ค์ด ๋†’์€ ํˆฌํ‘œ์œจ์„ ํ•‘๊ณ„๋กœ **์•ˆํ•˜๋ฌด์ธ์˜ ํƒœ๋„**๋ฅผ ๊ฐ–๋Š” ๋ถ€์ž‘์šฉ์ด ์ƒ๊ธด๋‹ค๋“ ๊ฐ€ ํ›„๋ณด์ž๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ํˆฌํ‘œํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์—ฌ **๊ตญ๋ฏผ์˜ ๋œป์ด ์˜คํžˆ๋ ค ์™œ๊ณก**๋  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์šฐ๋ ค์˜ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ณ  ์žˆ๋‹ค.
108
  """
109
+ # highlighted_text = annotated_text(
110
+ # ("๋ฏผ์ฃผ์ฃผ์˜ ์‚ฌํšŒ", ""), "๋Š” ๊ตญ๋ฏผ์ด ์ •์น˜์— ์ฐธ์—ฌํ•  ๊ถŒ๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ๊ทธ๋Ÿฌํ•œ ๊ถŒ๋ฆฌ๋ฅผ ", ("์ฐธ์ •๊ถŒ", ""), "์ด๋ผ ํ•˜๋Š”๋ฐ, ์ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ โ€˜์„ ๊ฑฐโ€™๋กœ ์‹คํ˜„๋œ๋‹ค. ์„ ๊ฑฐ๋Š” ์‚ฌํšŒ ์ง‘๋‹จ์˜ ๋Œ€ํ‘œ์ž๋‚˜ ๊ณต์ง์ž๋ฅผ ์„ ์ถœํ•˜์—ฌ ๊ทธ๋“ค์—๊ฒŒ ๋Œ€ํ‘œ์„ฑ์„ ๋ถ€์—ฌํ•˜๋Š” ํ–‰์œ„์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ", ("๋†’์€ ํˆฌํ‘œ์œจ", ""), "์€ ๋ฏผ์ฃผ์ฃผ์˜์˜ ", ("์ •๋‹น์„ฑ ํ™•๋ณด", ""), "์™€ ๊นŠ์€ ๊ด€๋ จ์ด ์žˆ๋‹ค.\n\n", ("์„ ๊ฑฐ ํˆฌํ‘œ ์ œ๋„", ""), "์—๋Š” ํˆฌํ‘œ๊ถŒ ํ–‰์‚ฌ๋ฅผ ํˆฌํ‘œ์ž์˜ ์ž์œ ์˜์‚ฌ์— ๋งก๊ธฐ๋Š” โ€˜", ("์ž์œ  ํˆฌํ‘œ์ œ", ""), "โ€™์™€ ํˆฌํ‘œ๊ถŒ ํ–‰์‚ฌ๋ฅผ ๊ตญ๋ฏผ์˜ ์˜๋ฌด๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ •๋‹นํ•œ ์‚ฌ์œ  ์—†์ด ๊ธฐ๊ถŒํ•˜๋ฉด ๋ฒ•์  ์ œ์žฌ๋ฅผ ๊ฐ€ํ•˜๋Š” โ€˜", ("์˜๋ฌด ํˆฌํ‘œ์ œ", ""), "โ€™๊ฐ€ ์žˆ๋‹ค. ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ์ž์œ  ํˆฌํ‘œ์ œ๋ฅผ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ตœ๊ทผ ์น˜๋ฅธ ์„ ๊ฑฐ์˜ ํ‰๊ท  ํˆฌํ‘œ์œจ์ด 50ํผ์„ผํŠธ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ๊ฒฝ์ œ ๊ฐœ๋ฐœ ํ˜‘๋ ฅ ๊ธฐ๊ตฌ(", ("OECD", ""), ") ํšŒ์›๊ตญ ํ‰๊ท ์ด 70ํผ์„ผํŠธ๋Œ€์ธ ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ๋งค์šฐ ๋‚ฎ์€ ์ˆ˜์น˜๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ์ง€์†๋˜์ž ์˜๋ฌด ํˆฌํ‘œ์ œ๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๊ฒฌ์ด ์ œ์‹œ๋˜์—ˆ๊ณ , ์ž์œ  ํˆฌํ‘œ์ œ๊ฐ€ ๋ฏผ์ฃผ์ฃผ์˜์˜ ์›์น™์— ๋งž์œผ๋ฏ€๋กœ ์ด๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์˜๊ฒฌ๊ณผ ๋Œ€๋ฆฝํ•˜๊ณ  ์žˆ๋‹ค.\n\n", ("์˜๋ฌด ํˆฌํ‘œ์ œ๋ฅผ ๋„์ž…ํ•˜์ž๋Š” ์ธก", ""), "์€ ๋‚ฎ์€ ํˆฌํ‘œ์œจ๋กœ ํˆฌํ‘œ ๊ฒฐ๊ณผ์˜ ", ("์ •๋‹น์„ฑ์„ ํ™•๋ณด", ""), "ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋งค์šฐ ์‹ฌ๊ฐํ•˜๋‹ค๊ณ  ์ฃผ์žฅํ•œ๋‹ค. ๋˜ ์˜๋ฌด ํˆฌํ‘œ์ œ์˜ ๊ฐ•์ œ์„ฑ๊ณผ ๋ฒ•์  ์ œ์žฌ๊ฐ€ ํˆฌํ‘œ์œจ์„ ๋†’์ด๋ฏ€๋กœ ํˆฌํ‘œ์œจ์ด ๋‚ฎ์•„์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๏ฟฝ๏ฟฝ๏ฟฝ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ณธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตญ๋ฏผ ๋Œ€๋ถ€๋ถ„์ด ํˆฌํ‘œ์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜๋ฉด ์ •์น˜์ธ๋“ค์ด ๋ชจ๋“  ๊ณ„์ธต์˜ ์ง€์ง€๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ •์ฑ… ๊ฒฝ์Ÿ๋ ฅ์„ ๋†’์ด๋ ค ํ•  ๊ฒƒ์ด๋ฏ€๋กœ ", ("์ •์น˜ ์†Œ์™ธ ๊ณ„์ธต", ""), "์— ๋”์šฑ ๊ด€์‹ฌ์„ ์Ÿ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค.\n\n๋ฐ˜๋ฉด ", ("์˜๋ฌด ํˆฌํ‘œ์ œ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ธก", ""), "์€ ํ˜„์žฌ ์šฐ๋ฆฌ๋‚˜๋ผ์˜ ํˆฌํ‘œ์œจ์ด ์ •์น˜ ์ง€๋„์ž๋“ค์˜ ๋Œ€ํ‘œ์„ฑ์„ ํ›ผ์†ํ•  ๋งŒํผ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ฃผ์žฅํ•œ๋‹ค. ๋˜ ํˆฌํ‘œ์œจ์„ ๋†’์ด๋Š” ๊ฒƒ๋ณด๋‹ค ", ("๊ตญ๋ฏผ์˜ ์‹ ๋ขฐ๋ฅผ ํšŒ๋ณต", ""), "ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๊ณ , ์‹œ๋ฏผ ๊ต์œก์ด๋‚˜ ๋ชจ์˜ ํˆฌํ‘œ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋„ ํˆฌํ‘œ์œจ ์ƒ์Šน์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์˜๋ฌด ํˆฌํ‘œ์ œ์˜ ๋„์ž…๋งŒ์ด ํˆฌํ‘œ์œจ์ด๋‚˜ ์ •์น˜์  ๊ด€์‹ฌ์„ ๋†’์ด๋Š” ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์•„๋‹ˆ๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜๋ฌด ํˆฌํ‘œ์ œ๋ฅผ ๋„์ž…ํ•˜๋ฉด, ์„ ์ถœ๋œ ์ •์น˜์ธ๋“ค์ด ๋†’์€ ํˆฌํ‘œ์œจ์„ ํ•‘๊ณ„๋กœ ", ("์•ˆํ•˜๋ฌด์ธ์˜ ํƒœ๋„", ""), "๋ฅผ ๊ฐ–๋Š” ๋ถ€์ž‘์šฉ์ด ์ƒ๊ธด๋‹ค๋“ ๊ฐ€ ํ›„๋ณด์ž๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ํˆฌํ‘œํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์—ฌ ", ("๊ตญ๋ฏผ์˜ ๋œป์ด ์˜คํžˆ๋ ค ์™œ๊ณก", ""), "๋  ์ˆ˜ ์žˆ๋‹ค๋ฉฐ ์šฐ๋ ค์˜ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋‚ด๊ณ  ์žˆ๋‹ค."
111
+ # )
112
 
113
  # ๊ธฐ์กด ์ง€๋ฌธ ์ง€์šฐ๊ธฐ
114
  text_placeholder.empty()
115
+ #text_container์— highlight๋œ ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅ
116
  with text_container:
117
+ st.markdown(highlighted_text, unsafe_allow_html=True)
118
+ else:
119
+ if st.session_state.points == 0:
120
+ #ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ๊ตฌ ์ถ”๊ฐ€
121
+ st.write("ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ํ‚ค์›Œ๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
122
+ pass
123
 
124
  with cols[1]:
125
  global btn_explanation
126
  btn_explanation= st.button("์ถ”๊ฐ€ ์„ค๋ช…")
127
+ if btn_explanation and st.session_state.points > 0: # ํฌ์ธํŠธ ์ฒดํฌ
128
+ update_points(1) # ํฌ์ธํŠธ ์ฆ๊ฐ€
129
+
130
  with cols[2]:
131
  global btn_simple
132
  btn_simple = st.button("์‰ฌ์šด ํ‘œํ˜„")
133
+ if btn_simple and st.session_state.points > 0: # ํฌ์ธํŠธ ์ฒดํฌ
134
+ update_points(-1) # ํฌ์ธํŠธ ๊ฐ์†Œ
135
 
136
 
137
  with cols[3]:
138
  global btn_rewrite
139
  btn_rewrite = st.button("๋‹ค์‹œ ์“ฐ๊ธฐ")
140
+ if btn_rewrite and st.session_state.points > 0: # ํฌ์ธํŠธ ์ฒดํฌ
141
+ update_points(-1) # ํฌ์ธํŠธ ๊ฐ์†Œ
142
 
143
 
144
  return btn_keyword, btn_explanation, btn_simple, btn_rewrite
 
147
  def display_output():
148
  with st.container():
149
  st.header("๊ฒฐ๊ณผ")
150
+ if btn_explanation and st.session_state.points > 0:
151
  explanation_task = f"Explain the term '{user_input}' in a simple manner, based on the context of the following passage: {user_text}"
152
 
153
  messages = [
 
167
  # ์ถ”๊ฐ€ ์„ค๋ช…
168
  st.write(f"์ถ”๊ฐ€ ์„ค๋ช…: {explanation}")
169
  pass
170
+ else:
171
+ if st.session_state.points == 0:
172
+ #ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋‹ค๋Š” ๋ฌธ๊ตฌ ์ถ”๊ฐ€
173
+ st.write("ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์ถ”๊ฐ€ ์„ค๋ช… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
174
 
175
+ pass
176
+
177
+ if btn_simple and st.session_state.points > 0:
178
  explanation_task = f"Describe the fingerprint of '{user_text}' in a way that an elementary school student could understand."
179
 
180
  messages = [
 
194
  # ์‰ฌ์šด ํ‘œํ˜„์œผ๋กœ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
195
  st.write(f"์‰ฌ์šด ๊ธ€: {explanation}")
196
  pass
197
+ else:
198
+ if st.session_state.points == 0:
199
+ st.write("ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ์‰ฌ์šด ํ‘œํ˜„ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
200
+ pass
201
 
202
+ if btn_rewrite and st.session_state.points > 0:
203
  explanation_task = f"Rewrite the contents of '{user_input}' so that it will pass the writing test."
204
 
205
  messages = [
 
217
  explanation = response['choices'][0]['message']['content']
218
 
219
  st.write(f"๋‹ค์‹œ ์“ฐ๊ธฐ: {explanation}")
220
+ pass
221
+ else:
222
+ if st.session_state.points == 0:
223
+ st.write("ํฌ์ธํŠธ๊ฐ€ ์—†์–ด์„œ ๋‹ค์‹œ ์“ฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
224
 
225
+ pass
226
 
227
 
228
  def main():
229
  st.title("ํ•œ๊ตญ์–ด ํ•™์Šต์ž๋ฅผ ์œ„ํ•œ HCI tools")
230
+ #ํฌ์ธํŠธ ์‹œ์Šคํ…œ ์„ค๋ช… ์ถ”๊ฐ€
231
+ st.sidebar.markdown("ํฌ์ธํŠธ๋Š” 3์ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ, ํ‚ค์›Œ๋“œ ์ฐพ๊ธฐ, ์‰ฌ์šด ํ‘œํ˜„, ๋‹ค์‹œ ์“ฐ๊ธฐ๋ฅผ ํ•  ๋•Œ 1์ ์”ฉ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์„ค๋ช…๊ณผ ์ฑ„์ ํ•˜๊ธฐ๋ฅผ ํ•  ๋•Œ 1์ ์”ฉ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ธํŠธ๊ฐ€ 0์ ์ด ๋˜๋ฉด ๋” ์ด์ƒ ์ž‘์—…์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ")
232
+
233
  col1, col2 = st.columns(2)
234
 
235
  with col1:
 
238
  with col2:
239
  btn_keyword, btn_explanation, btn_simple, btn_rewrite = display_input_btns(col2)
240
  display_output()
241
+ #ํฌ์ธํŠธ ํ‘œ์‹œ
242
+ display_points()
243
 
244
 
245
  if __name__ == "__main__":