JUNGU commited on
Commit
4e0dc16
ยท
verified ยท
1 Parent(s): f9dba5f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -16
app.py CHANGED
@@ -4,7 +4,6 @@ import openai
4
  import os
5
  import instructions
6
 
7
-
8
  # OpenAI API ์„ค์ •
9
  openai.api_key = os.getenv("OPENAI_API_KEY")
10
 
@@ -22,13 +21,16 @@ def upload_and_process_file():
22
  return None
23
 
24
  # ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ ์ƒ์„ฑ ํ•จ์ˆ˜
25
- def generate_living_record(data):
26
  data_str = str(data)
 
 
 
27
  response = openai.ChatCompletion.create(
28
  model="gpt-4o-mini",
29
  messages=[
30
  {"role": "system",
31
- "content": instructions.instruction
32
  },
33
  {"role": "user",
34
  "content": data_str
@@ -42,27 +44,26 @@ def generate_living_record(data):
42
  )
43
  return response.choices[0].message.content
44
 
45
- #์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ์ž…๋ ฅ์ฐฝ ๋‚ด ์ง€์šฐ๊ธฐ ๊ธฐ๋Šฅ์€ ์‚ญ์ œ์ฒ˜๋ฆฌํ•จ
46
- # def clear_text(key):
47
- # st.session_state[key] = ""
48
-
49
  # Streamlit ์•ฑ ๊ตฌ์„ฑ
50
  st.title("์ƒํ™œ๊ธฐ๋ก๋ถ€ ์ƒ์„ฑ ์„œ๋น„์Šค")
51
  st.write("๊ธฐ๋ก ์ž๋ฃŒ๊ฐ€ ๋‹ด๊ธด CSVํŒŒ์ผ ์—…๋กœ๋“œ, ์ง์ ‘ ๊ธฐ๋ก์„ ์ž…๋ ฅ, ํ‚ค์›Œ๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ์ž‘์„ฑ์— ํ•„์š”ํ•œ ๊ด€์ฐฐ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
52
  st.write("GPT๋Š” ์‹ค์ˆ˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋‹ค์‹œ ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”.")
53
 
 
 
 
54
  # ํŒŒ์ผ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ
55
  uploaded_data = upload_and_process_file()
56
 
57
- #์˜ˆ์‹œ ํ‚ค์›Œ๋“œ
58
  attitude_keywords = [
59
- "์ง‘์ค‘๋ ฅ", "๊ณผ์ œ ์ดํ•ด", "๋ฐœํ‘œ", "๋ฌธ์ œ ํ•ด๊ฒฐ๋ ฅ", "๊ณผ์ œ ์ˆ˜ํ–‰", "๊ด€์ฐฐ๋ ฅ",
60
- "ํƒ๊ตฌ๋ ฅ", "์ž๊ธฐ ์ƒ๊ฐ ํ‘œํ˜„", "๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ", "์šด๋™์‹ ๊ฒฝ", "ํ˜‘๋™์‹ฌ",
61
- "๋ฆฌ๋”์‰ฝ", "๋…ผ๋ฆฌ์  ๋น„ํŒ๋ ฅ", "๊ต๊ณผ ํ•™์Šต ์„ฑ์ทจ๋„", "๋ชฉํ‘œ์˜์‹", "๊ธฐ๋ณธ ํ•™์Šต",
62
- "๋„์ „ ๊ณผ์ œ", "๋ฏธ์  ๊ฐ๊ฐ", "์˜ˆ์ˆ ์  ์žฌ๋Šฅ", "์Œ์•…์  ์žฌ๋Šฅ", "ํ˜ธ๊ธฐ์‹ฌ",
63
- "์งˆ๋ฌธ", "๋ชจ๋‘ ํ™œ๋™"
64
-
65
  ]
 
66
  relationship_keywords = [
67
  "ํ˜‘๋™์„ฑ", "์นœ์ ˆํ•จ", "๊ณต๊ฐ ๋Šฅ๋ ฅ", "์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜", "๋ฆฌ๋”์‹ญ", "๊ฒฝ์Ÿ", "ํ˜‘๋ ฅ",
68
  "์ธ์ •์š•๊ตฌ", "์˜์‚ฌ์†Œํ†ต ๋ฌธ์ œ", "์‹ ๋ขฐ", "์ƒํ˜ธ์กด์ค‘", "๊ณต์œ ", "์ดํ•ด์‹ฌ", "์นœ๋ฐ€ํ•จ",
@@ -100,7 +101,6 @@ with col1:
100
  current_bytes = len(user_input.encode('utf-8'))
101
  st.caption(f"ํ˜„์žฌ ์ž…๋ ฅ์ฐฝ ๋ฐ”์ดํŠธ ์ˆ˜: {current_bytes}")
102
 
103
-
104
  with col2:
105
  # ํ‚ค์›Œ๋“œ ์„ ํƒ ์˜ต์…˜
106
  st.write("ํ‚ค์›Œ๋“œ ์„ ํƒ")
@@ -113,7 +113,7 @@ with col2:
113
  input_data = "\n".join([st.session_state[f'record_{i}'] for i in range(5) if st.session_state[f'record_{i}']])
114
  keyword_data = " ".join(selected_attitude + selected_relationship + selected_personality)
115
  full_data = input_data + "\n" + keyword_data
116
- generated_record = generate_living_record(full_data)
117
  # ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ์„ธ์…˜ ์ƒํƒœ์— ์ €์žฅ
118
  st.session_state["generated_result"] = generated_record
119
 
 
4
  import os
5
  import instructions
6
 
 
7
  # OpenAI API ์„ค์ •
8
  openai.api_key = os.getenv("OPENAI_API_KEY")
9
 
 
21
  return None
22
 
23
  # ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ ์ƒ์„ฑ ํ•จ์ˆ˜
24
+ def generate_living_record(data, selected_instruction):
25
  data_str = str(data)
26
+ instruction_content = (instructions.instruction if selected_instruction == "์ดˆ๋“ฑํ•™๊ต"
27
+ else instructions.highschool_instruction)
28
+
29
  response = openai.ChatCompletion.create(
30
  model="gpt-4o-mini",
31
  messages=[
32
  {"role": "system",
33
+ "content": instruction_content
34
  },
35
  {"role": "user",
36
  "content": data_str
 
44
  )
45
  return response.choices[0].message.content
46
 
 
 
 
 
47
  # Streamlit ์•ฑ ๊ตฌ์„ฑ
48
  st.title("์ƒํ™œ๊ธฐ๋ก๋ถ€ ์ƒ์„ฑ ์„œ๋น„์Šค")
49
  st.write("๊ธฐ๋ก ์ž๋ฃŒ๊ฐ€ ๋‹ด๊ธด CSVํŒŒ์ผ ์—…๋กœ๋“œ, ์ง์ ‘ ๊ธฐ๋ก์„ ์ž…๋ ฅ, ํ‚ค์›Œ๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ์ž‘์„ฑ์— ํ•„์š”ํ•œ ๊ด€์ฐฐ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
50
  st.write("GPT๋Š” ์‹ค์ˆ˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋‹ค์‹œ ๋ˆŒ๋Ÿฌ๋ณด์„ธ์š”.")
51
 
52
+ # ํ•™๊ต๊ธ‰ ์„ ํƒ ๋ผ๋””์˜ค ๋ฒ„ํŠผ
53
+ school_level = st.radio("ํ•™๊ต๊ธ‰ ์„ ํƒ", ["์ดˆ๋“ฑํ•™๊ต", "์ค‘ยท๊ณ ๋“ฑํ•™๊ต"])
54
+
55
  # ํŒŒ์ผ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ
56
  uploaded_data = upload_and_process_file()
57
 
58
+ # ๋‚˜๋จธ์ง€ ์ฝ”๋“œ๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€...
59
  attitude_keywords = [
60
+ "์ง‘์ค‘๋ ฅ", "๊ณผ์ œ ์ดํ•ด", "๋ฐœํ‘œ", "๋ฌธ์ œ ํ•ด๊ฒฐ๋ ฅ", "๊ณผ์ œ ์ˆ˜ํ–‰", "๊ด€์ฐฐ๋ ฅ",
61
+ "ํƒ๊ตฌ๋ ฅ", "์ž๊ธฐ ์ƒ๊ฐ ํ‘œํ˜„", "๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ", "์šด๋™์‹ ๊ฒฝ", "ํ˜‘๋™์‹ฌ",
62
+ "๋ฆฌ๋”์‰ฝ", "๋…ผ๋ฆฌ์  ๋น„ํŒ๋ ฅ", "๊ต๊ณผ ํ•™์Šต ์„ฑ์ทจ๋„", "๋ชฉํ‘œ์˜์‹", "๊ธฐ๋ณธ ํ•™์Šต",
63
+ "๋„์ „ ๊ณผ์ œ", "๋ฏธ์  ๊ฐ๊ฐ", "์˜ˆ์ˆ ์  ์žฌ๋Šฅ", "์Œ์•…์  ์žฌ๋Šฅ", "ํ˜ธ๊ธฐ์‹ฌ",
64
+ "์งˆ๋ฌธ", "๋ชจ๋‘ ํ™œ๋™"
 
65
  ]
66
+
67
  relationship_keywords = [
68
  "ํ˜‘๋™์„ฑ", "์นœ์ ˆํ•จ", "๊ณต๊ฐ ๋Šฅ๋ ฅ", "์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜", "๋ฆฌ๋”์‹ญ", "๊ฒฝ์Ÿ", "ํ˜‘๋ ฅ",
69
  "์ธ์ •์š•๊ตฌ", "์˜์‚ฌ์†Œํ†ต ๋ฌธ์ œ", "์‹ ๋ขฐ", "์ƒํ˜ธ์กด์ค‘", "๊ณต์œ ", "์ดํ•ด์‹ฌ", "์นœ๋ฐ€ํ•จ",
 
101
  current_bytes = len(user_input.encode('utf-8'))
102
  st.caption(f"ํ˜„์žฌ ์ž…๋ ฅ์ฐฝ ๋ฐ”์ดํŠธ ์ˆ˜: {current_bytes}")
103
 
 
104
  with col2:
105
  # ํ‚ค์›Œ๋“œ ์„ ํƒ ์˜ต์…˜
106
  st.write("ํ‚ค์›Œ๋“œ ์„ ํƒ")
 
113
  input_data = "\n".join([st.session_state[f'record_{i}'] for i in range(5) if st.session_state[f'record_{i}']])
114
  keyword_data = " ".join(selected_attitude + selected_relationship + selected_personality)
115
  full_data = input_data + "\n" + keyword_data
116
+ generated_record = generate_living_record(full_data, school_level)
117
  # ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฅผ ์„ธ์…˜ ์ƒํƒœ์— ์ €์žฅ
118
  st.session_state["generated_result"] = generated_record
119