mlo0ollm commited on
Commit
c0ab8a1
Β·
1 Parent(s): 59bf340
Files changed (2) hide show
  1. app.py +28 -31
  2. gpt_based_function.py +1 -1
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import streamlit as st
2
  import openai
3
  from gpt_based_function import gpt_keyw_extractor
@@ -8,7 +9,8 @@ import os, sys
8
  # sys.path.append(current_path)
9
 
10
  # OpenAI API μ„€μ • (ν™˜κ²½ λ³€μˆ˜μ—μ„œ μ½μ–΄μ˜΄)
11
- openai.api_key = os.getenv("OPENAI_API_KEY") # μ‹€μ œ μ½”λ“œμ—μ„œ 주석 ν•΄μ œ
 
12
  st.set_page_config(layout="wide")
13
 
14
 
@@ -20,8 +22,29 @@ preset_learning_text = """민주주의 μ‚¬νšŒλŠ” ꡭ민이 μ •μΉ˜μ— μ°Έμ—¬ν• 
20
  반면 의무 νˆ¬ν‘œμ œμ— λ°˜λŒ€ν•˜λŠ” 츑은 ν˜„μž¬ μš°λ¦¬λ‚˜λΌμ˜ νˆ¬ν‘œμœ¨μ΄ μ •μΉ˜ μ§€λ„μžλ“€μ˜ λŒ€ν‘œμ„±μ„ 훼손할 만큼 μ‹¬κ°ν•œ 상황은 μ•„λ‹ˆλΌκ³  μ£Όμž₯ν•œλ‹€. 또 νˆ¬ν‘œμœ¨μ„ λ†’μ΄λŠ” 것보닀 ꡭ민의 μ‹ λ’°λ₯Ό νšŒλ³΅ν•˜λŠ” 것이 더 μ€‘μš”ν•˜κ³ , μ‹œλ―Ό κ΅μœ‘μ΄λ‚˜ λͺ¨μ˜ νˆ¬ν‘œ ꡐ윑 ν”„λ‘œκ·Έλž¨μœΌλ‘œλ„ νˆ¬ν‘œμœ¨ μƒμŠΉμ„ κΈ°λŒ€ν•  수 μžˆλ‹€λ©° 의무 νˆ¬ν‘œμ œμ˜ λ„μž…λ§Œμ΄ νˆ¬ν‘œμœ¨μ΄λ‚˜ μ •μΉ˜μ  관심을 λ†’μ΄λŠ” ν•΄κ²° λ°©μ•ˆμ€ μ•„λ‹ˆλΌκ³  μ΄μ•ΌκΈ°ν•œλ‹€. 그리고 의무 νˆ¬ν‘œμ œλ₯Ό λ„μž…ν•˜λ©΄, μ„ μΆœλœ μ •μΉ˜μΈλ“€μ΄ 높은 νˆ¬ν‘œμœ¨μ„ ν•‘κ³„λ‘œ μ•ˆν•˜λ¬΄μΈμ˜ νƒœλ„λ₯Ό κ°–λŠ” λΆ€μž‘μš©μ΄ 생긴닀든가 ν›„λ³΄μžλ₯Ό 잘 λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œ νˆ¬ν‘œν•˜λŠ” 일이 λ°œμƒν•˜μ—¬ ꡭ민의 뜻이 였히렀 μ™œκ³‘λ  수 μžˆλ‹€λ©° 우렀의 λͺ©μ†Œλ¦¬λ₯Ό λ‚΄κ³  μžˆλ‹€.
21
  """
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  def display_passage(col):
24
  st.header("지문")
 
25
  global text_container
26
  text_container = st.container() # μΆ”κ°€λœ μ½”λ“œ
27
  # 미리 곡간 확보
@@ -69,10 +92,11 @@ def display_summary(col):
69
 
70
  def display_input_btns(col):
71
  st.header("인곡지λŠ₯ μ‚¬μš©ν•˜κΈ°")
 
72
  global user_input
73
  user_input = st.text_area("λ‚΄μš©μ„ λ„£κ³  λ²„νŠΌμ„ λˆŒλŸ¬μ£Όμ„Έμš”:", "")
74
  st.write(user_input)
75
- global highlighted_texts_list
76
  # λ²„νŠΌ row
77
  cols = st.columns(4)
78
  with cols[0]:
@@ -80,11 +104,12 @@ def display_input_btns(col):
80
  if btn_keyword:
81
  # ν‚€μ›Œλ“œ μ°ΎκΈ° 둜직
82
  # highlighted_text = gpt_keyw_extractor(preset_learning_text) # Should Be DELETED
83
-
84
  highlighted_text = highlighted_texts_list[-1]
85
 
86
  # κΈ°μ‘΄ 지문 μ§€μš°κΈ°
87
  text_placeholder.empty()
 
88
  # μƒˆλ‘œμš΄ λ‚΄μš© λ„£κΈ°
89
  with text_container:
90
  exec(highlighted_text)
@@ -176,34 +201,6 @@ def main():
176
 
177
  col1, col2 = st.columns(2)
178
 
179
- ## μ‹œμž‘ν•˜κΈ° λ²„νŠΌ μΆ”κ°€
180
- btn_start = st.button("μ‹œμž‘ν•˜κΈ°")
181
- if btn_start:
182
- # ν‚€μ›Œλ“œ μ°ΎκΈ° μ‹€ν–‰ν•΄μ„œ λ³€μˆ˜μ— keep
183
- # preset_keyw_func(preset_learning_texts)
184
- global preset_learning_text
185
- preset_learning_texts = preset_learning_text.split("\n")
186
-
187
- global highlighted_texts_list
188
- highlighted_texts_list = list()
189
- tmp = str()
190
- for k in range(len(preset_learning_texts)):
191
- print(k)
192
- text = preset_learning_texts[k]
193
- if tmp:
194
-
195
- if len(text) > 15:
196
- front_bared_htext = preset_learning_texts[k][15:] #15 = len('annotated_text(')
197
- tmp = tmp[:-1] + front_bared_htext
198
- else:
199
- break # 총 λ¬Έλ‹¨μˆ˜ == len(highlighted_text_list)-1
200
- else:
201
- tmp += text
202
- highlighted_texts_list.append(gpt_keyw_extractor(tmp))
203
-
204
- # μ‰¬μš΄ ν‘œν˜„ μ‹€ν–‰ν•΄μ„œ λ³€μˆ˜μ— keep
205
- pass
206
-
207
  with col1:
208
  display_passage(col1)
209
  display_summary(col1)
 
1
+ from annotated_text import annotated_text
2
  import streamlit as st
3
  import openai
4
  from gpt_based_function import gpt_keyw_extractor
 
9
  # sys.path.append(current_path)
10
 
11
  # OpenAI API μ„€μ • (ν™˜κ²½ λ³€μˆ˜μ—μ„œ μ½μ–΄μ˜΄)
12
+ openai.api_key = "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"
13
+ # openai.api_key = os.getenv("OPENAI_API_KEY") # μ‹€μ œ μ½”λ“œμ—μ„œ 주석 ν•΄μ œ
14
  st.set_page_config(layout="wide")
15
 
16
 
 
22
  반면 의무 νˆ¬ν‘œμ œμ— λ°˜λŒ€ν•˜λŠ” 츑은 ν˜„μž¬ μš°λ¦¬λ‚˜λΌμ˜ νˆ¬ν‘œμœ¨μ΄ μ •μΉ˜ μ§€λ„μžλ“€μ˜ λŒ€ν‘œμ„±μ„ 훼손할 만큼 μ‹¬κ°ν•œ 상황은 μ•„λ‹ˆλΌκ³  μ£Όμž₯ν•œλ‹€. 또 νˆ¬ν‘œμœ¨μ„ λ†’μ΄λŠ” 것보닀 ꡭ민의 μ‹ λ’°λ₯Ό νšŒλ³΅ν•˜λŠ” 것이 더 μ€‘μš”ν•˜κ³ , μ‹œλ―Ό κ΅μœ‘μ΄λ‚˜ λͺ¨μ˜ νˆ¬ν‘œ ꡐ윑 ν”„λ‘œκ·Έλž¨μœΌλ‘œλ„ νˆ¬ν‘œμœ¨ μƒμŠΉμ„ κΈ°λŒ€ν•  수 μžˆλ‹€λ©° 의무 νˆ¬ν‘œμ œμ˜ λ„μž…λ§Œμ΄ νˆ¬ν‘œμœ¨μ΄λ‚˜ μ •μΉ˜μ  관심을 λ†’μ΄λŠ” ν•΄κ²° λ°©μ•ˆμ€ μ•„λ‹ˆλΌκ³  μ΄μ•ΌκΈ°ν•œλ‹€. 그리고 의무 νˆ¬ν‘œμ œλ₯Ό λ„μž…ν•˜λ©΄, μ„ μΆœλœ μ •μΉ˜μΈλ“€μ΄ 높은 νˆ¬ν‘œμœ¨μ„ ν•‘κ³„λ‘œ μ•ˆν•˜λ¬΄μΈμ˜ νƒœλ„λ₯Ό κ°–λŠ” λΆ€μž‘μš©μ΄ 생긴닀든가 ν›„λ³΄μžλ₯Ό 잘 λͺ¨λ₯΄λŠ” μƒνƒœμ—μ„œ νˆ¬ν‘œν•˜λŠ” 일이 λ°œμƒν•˜μ—¬ ꡭ민의 뜻이 였히렀 μ™œκ³‘λ  수 μžˆλ‹€λ©° 우렀의 λͺ©μ†Œλ¦¬λ₯Ό λ‚΄κ³  μžˆλ‹€.
23
  """
24
 
25
+ # ν‚€μ›Œλ“œ μ°ΎκΈ° μ‹€ν–‰ν•΄μ„œ λ³€μˆ˜μ— keep
26
+ # preset_keyw_func(preset_learning_texts)
27
+ preset_learning_texts = preset_learning_text.split("\n")
28
+
29
+ highlighted_texts_list = list()
30
+ tmp = str()
31
+ for k in range(len(preset_learning_texts)):
32
+ print(k)
33
+ text = preset_learning_texts[k]
34
+ if tmp:
35
+
36
+ if len(text) > 15:
37
+ front_bared_htext = preset_learning_texts[k][15:] # 15 = len('annotated_text(')
38
+ tmp = tmp[:-1] + front_bared_htext
39
+ else:
40
+ break # 총 λ¬Έλ‹¨μˆ˜ == len(highlighted_text_list)-1
41
+ else:
42
+ tmp += text
43
+ highlighted_texts_list.append(gpt_keyw_extractor(tmp))
44
+
45
  def display_passage(col):
46
  st.header("지문")
47
+
48
  global text_container
49
  text_container = st.container() # μΆ”κ°€λœ μ½”λ“œ
50
  # 미리 곡간 확보
 
92
 
93
  def display_input_btns(col):
94
  st.header("인곡지λŠ₯ μ‚¬μš©ν•˜κΈ°")
95
+
96
  global user_input
97
  user_input = st.text_area("λ‚΄μš©μ„ λ„£κ³  λ²„νŠΌμ„ λˆŒλŸ¬μ£Όμ„Έμš”:", "")
98
  st.write(user_input)
99
+
100
  # λ²„νŠΌ row
101
  cols = st.columns(4)
102
  with cols[0]:
 
104
  if btn_keyword:
105
  # ν‚€μ›Œλ“œ μ°ΎκΈ° 둜직
106
  # highlighted_text = gpt_keyw_extractor(preset_learning_text) # Should Be DELETED
107
+ global highlighted_texts_list
108
  highlighted_text = highlighted_texts_list[-1]
109
 
110
  # κΈ°μ‘΄ 지문 μ§€μš°κΈ°
111
  text_placeholder.empty()
112
+
113
  # μƒˆλ‘œμš΄ λ‚΄μš© λ„£κΈ°
114
  with text_container:
115
  exec(highlighted_text)
 
201
 
202
  col1, col2 = st.columns(2)
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  with col1:
205
  display_passage(col1)
206
  display_summary(col1)
gpt_based_function.py CHANGED
@@ -5,7 +5,7 @@ from text_annotator import generate_annotated_text
5
  def gpt_keyw_extractor(user_text):
6
  '''
7
  :param user_text: str
8
- :return: list of keywords
9
  '''
10
  task_description = "You are a Python function that extract 5 keywords from {input_text}. The output should be formatted as ['keyword1', 'keyword2', ...]. Return only the function's output, with no additional explanations."
11
 
 
5
  def gpt_keyw_extractor(user_text):
6
  '''
7
  :param user_text: str
8
+ :return: annotated_text: str
9
  '''
10
  task_description = "You are a Python function that extract 5 keywords from {input_text}. The output should be formatted as ['keyword1', 'keyword2', ...]. Return only the function's output, with no additional explanations."
11