Kims12 commited on
Commit
73cb1c2
ยท
verified ยท
1 Parent(s): 0d1aeaf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -5
app.py CHANGED
@@ -36,14 +36,74 @@ def respond_chatgpt_qna(
36
  def merge_and_call(tone: str, ref1: str, ref2: str, ref3: str):
37
  """
38
  ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๋งํˆฌ์™€ ์ฐธ์กฐ๊ธ€๋“ค์„ ํ•˜๋‚˜์˜ ํ”„๋กฌํ”„ํŠธ๋กœ ํ•ฉ์ณ gpt-4o-mini ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜.
 
39
  """
40
- # ๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
41
- question = f"๋งํˆฌ: {tone}\n์ฐธ์กฐ๊ธ€ 1: {ref1}\n์ฐธ์กฐ๊ธ€ 2: {ref2}\n์ฐธ์กฐ๊ธ€ 3: {ref3}"
42
- # ๊ณ ๊ธ‰ ์„ค์ •์€ ์ฝ”๋“œ ๋‚ด๋ถ€์— ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ง€์ • (UI์—๋Š” ๋…ธ์ถœ๋˜์ง€ ์•Š์Œ)
43
- system_message = "์•„๋ž˜์˜ ์ฐธ์กฐ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ƒ์„ฑํ•˜๋ผ."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  max_tokens = 2000
45
  temperature = 0.7
46
  top_p = 0.95
 
47
  return respond_chatgpt_qna(
48
  question=question,
49
  system_message=system_message,
@@ -55,7 +115,6 @@ def merge_and_call(tone: str, ref1: str, ref2: str, ref3: str):
55
  with gr.Blocks() as demo:
56
  gr.Markdown("# ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ๊ธฐ")
57
 
58
- # ์ž…๋ ฅ ํ•ญ๋ชฉ ๊ตฌ์„ฑ
59
  tone_radio = gr.Radio(
60
  choices=["์นœ๊ทผํ•˜๊ฒŒ", "์ผ๋ฐ˜์ ์ธ", "์ „๋ฌธ์ ์ธ"],
61
  label="๋งํˆฌ๋ฐ”๊พธ๊ธฐ",
 
36
  def merge_and_call(tone: str, ref1: str, ref2: str, ref3: str):
37
  """
38
  ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๋งํˆฌ์™€ ์ฐธ์กฐ๊ธ€๋“ค์„ ํ•˜๋‚˜์˜ ํ”„๋กฌํ”„ํŠธ๋กœ ํ•ฉ์ณ gpt-4o-mini ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜.
39
+ ๊ฐ ๋งํˆฌ์— ๋”ฐ๋ผ ๊ณ ์œ ์˜ system_message(ํ”„๋กฌํ”„ํŠธ)๊ฐ€ ์ ์šฉ๋˜๋ฉฐ, ์•„๋ž˜์˜ ๊ธฐ๋ณธ ํ”„๋กฌํ”„ํŠธ ๊ทœ์น™์„ ๋ฐ˜๋“œ์‹œ ์ค€์ˆ˜ํ•œ๋‹ค.
40
  """
41
+ # ๊ธฐ๋ณธ ํ”„๋กฌํ”„ํŠธ ๊ทœ์น™ (๋ชจ๋“  ๋งํˆฌ์— ๊ณตํ†ต ์ ์šฉ)
42
+ base_prompt = (
43
+ "๋„ˆ๋Š” ๊ฐ€์žฅ ์ฃผ๋ชฉ๋ฐ›๋Š” ๋งˆ์ผ€ํ„ฐ์ด๋ฉฐ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€์ด๋‹ค. "
44
+ "ํŠนํžˆ ๋„ˆ๋Š” '์ •๋ณด์„ฑ(Informative)' ์ „๋ฌธ ๋ธ”๋กœ๊ทธ ๋งˆ์ผ€ํŒ… ์ „๋ฌธ๊ฐ€๋กœ์„œ, ์ •๋ณด ์ œ๊ณต์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.\n"
45
+ "๋‹ค์Œ ํ…์ŠคํŠธ ์ž‘์„ฑ ๊ทœ์น™์„ ๋ฐ˜๋“œ์‹œ ์ค€์ˆ˜ํ•˜๋ผ:\n"
46
+ "1. ์†Œ์ฃผ์ œ๋ฅผ 5๊ฐœ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ 2000์ž ์ด์ƒ ์ž‘์„ฑํ•˜๋ผ.\n"
47
+ "2. ์ „์ฒด ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๊ณ  ๋ฌธ์žฅ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ผ.\n"
48
+ "3. ์ ˆ๋Œ€๋กœ ์ฐธ๊ณ ๊ธ€์„ ํ•œ ๋ฌธ์žฅ ์ด์ƒ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜์ง€ ๋ง๋ผ.\n"
49
+ "4. ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ์ ์ ˆํ•œ ์–ดํœ˜๋ฅผ ์„ ํƒํ•˜๋ผ.\n"
50
+ "5. ํ•œ๊ธ€ ์–ดํœ˜์˜ ๋‚œ์ด๋„๋Š” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.\n"
51
+ "6. ์ ˆ๋Œ€ ๋ฌธ์žฅ์˜ ๋์— '๋‹ต๋‹ˆ๋‹ค'๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ.\n"
52
+ "์ •๋ณด์„ฑ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ๊ทœ์น™:\n"
53
+ "1. ๋…์ž๊ฐ€ ์–ป๊ณ ์ž ํ•˜๋Š” ์œ ์šฉํ•˜๊ณ  ํฅ๋ฏธ๋กœ์šด ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ.\n"
54
+ "2. ๋…์ž์˜ ๊ณต๊ฐ์„ ์ด๋Œ์–ด๋‚ด๊ณ  ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋ผ.\n"
55
+ "3. ๋…์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๋ผ.\n"
56
+ "4. ๋…์ž์—๊ฒŒ ์ด๋“์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ.\n"
57
+ "์ œ์™ธ ๊ทœ์น™:\n"
58
+ "1. ๋ฐ˜๋“œ์‹œ ๋น„์†์–ด ๋ฐ ์š•์„ค์€ ์ œ์™ธํ•˜๋ผ.\n"
59
+ "2. ๋ฐ˜๋“œ์‹œ ์ฐธ๊ณ ๊ธ€์˜ ๋งํฌ(URL)๋Š” ์ œ์™ธํ•˜๋ผ.\n"
60
+ "3. '๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”' ๋“ฑ์˜ ๋ฌธ๊ตฌ๋Š” ์ œ์™ธํ•˜๋ผ.\n"
61
+ "4. ์ฐธ๊ณ ๊ธ€์— ์žˆ๋Š” ์ž‘์„ฑ์ž, ํ™”์ž, ์œ ํŠœ๋ฒ„, ๊ธฐ์ž์˜ ์ด๋ฆ„, ์• ์นญ, ๋‹‰๋„ค์ž„์€ ๋ฐ˜๋“œ์‹œ ์ œ์™ธํ•˜๋ผ.\n"
62
+ "5. ๋ฌธ์žฅ์˜ ๋๋ถ€๋ถ„์— ์–ด์ƒ‰ํ•œ ํ‘œํ˜„(์˜ˆ: '์˜ˆ์š”', '๋‹ต๋‹ˆ๋‹ค', 'ํ•ด์š”', 'ํ•ด์ฃผ์ฃ ', '๋์ฃ ', '๋์–ด์š”', '๊ณ ์š”' ๋“ฑ)์€ ์‚ฌ์šฉํ•˜์ง€ ๋ง๋ผ."
63
+ )
64
+
65
+ # ๋งํˆฌ๋ณ„ ์ถ”๊ฐ€ ํ”„๋กฌํ”„ํŠธ ์„ค์ •
66
+ if tone == "์นœ๊ทผํ•˜๊ฒŒ":
67
+ tone_prompt = (
68
+ "์นœ๊ทผํ•˜๊ฒŒ:\n"
69
+ "1. ํ†ค๊ณผ ์–ด์กฐ: ๋Œ€ํ™”ํ•˜๋“ฏ ํŽธ์•ˆํ•˜๊ณ  ์นœ๊ทผํ•œ ๋งํˆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.\n"
70
+ "2. ๋ฌธ์žฅ ๋ฐ ์–ดํˆฌ: ๋ฐ˜๋“œ์‹œ 'ํ•ด์š”์ฒด'๋กœ ์ž‘์„ฑํ•˜๋ฉฐ, '์Šต๋‹ˆ๋‹ค'์ฒด๋‚˜ '~๋‹ค'๋กœ ๋๋‚˜์ง€ ์•Š๋„๋ก ํ•˜๋ผ. ๊ตฌ์–ด์ฒด ํ‘œํ˜„(์˜ˆ: '~ํ–ˆ์–ด์š”', '~์ธ ๊ฒƒ ๊ฐ™์•„์š”')์„ ์‚ฌ์šฉํ•˜๋ผ.\n"
71
+ "3. ์šฉ์–ด ๋ฐ ์„ค๋ช…: ์ „๋ฌธ ์šฉ์–ด ๋Œ€์‹  ์‰ฌ์šด ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋น„์œ ๋‚˜ ์€์œ ๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ๊ฐœ๋…์„ ์„ค๋ช…ํ•˜๋ผ.\n"
72
+ "4. ๋…์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ: ๋…์ž์˜ ์˜๊ฒฌ์„ ๋ฌป๋Š” ์งˆ๋ฌธ๊ณผ ๋Œ“๊ธ€์„ ์œ ๋„ํ•˜๋Š” ๋ฌธ๊ตฌ๋ฅผ ํฌํ•จํ•˜๋ผ.\n"
73
+ "์ฃผ์˜: ๋„ˆ๋ฌด ๊ฐ€๋ฒผ์šด ํ†ค์€ ํ”ผํ•˜๋˜ ์ฃผ์ œ์˜ ์ค‘์š”์„ฑ์„ ํ•ด์น˜์ง€ ๋ง๋ผ."
74
+ )
75
+ elif tone == "์ผ๋ฐ˜์ ์ธ":
76
+ tone_prompt = (
77
+ "์ผ๋ฐ˜์ ์ธ:\n"
78
+ "1. ํ†ค๊ณผ ์–ด์กฐ: ์ค‘๋ฆฝ์ ์ด๊ณ  ๊ฐ๊ด€์ ์ธ ํ†ค์„ ์œ ์ง€ํ•˜๋ฉฐ, ์ ์ ˆํ•œ ์กด๋Œ“๋ง(์˜ˆ: '~ํ•ฉ๋‹ˆ๋‹ค', '~์ž…๋‹ˆ๋‹ค')์„ ์‚ฌ์šฉํ•˜๋ผ.\n"
79
+ "2. ๋‚ด์šฉ ๊ตฌ์กฐ: ๋ช…ํ™•ํ•œ ์ฃผ์ œ ์ œ์‹œ์™€ ๋…ผ๋ฆฌ์ ์ธ ์ „๊ฐœ, ์†Œ์ œ๋ชฉ ๋ฐ ๋‹จ๋ฝ ๊ตฌ๋ถ„์„ ํ™œ์šฉํ•˜๋ผ.\n"
80
+ "3. ์šฉ์–ด ๋ฐ ์„ค๋ช…: ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์šฉ์–ด์™€ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐ๊ด€์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ.\n"
81
+ "4. ๋…์ž ์ƒํ˜ธ์ž‘์šฉ: ๋…์ž์˜ ์ƒ๊ฐ์„ ๋ฌป๋Š” ์งˆ๋ฌธ๊ณผ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํฌํ•จํ•˜๋ผ.\n"
82
+ "5. ๋งˆ๋ฌด๋ฆฌ: ์ฃผ์š” ๋‚ด์šฉ์„ ๊ฐ„๋žตํžˆ ์š”์•ฝํ•˜๊ณ  ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์•ˆ๋‚ดํ•˜๋ผ."
83
+ )
84
+ elif tone == "์ „๋ฌธ์ ์ธ":
85
+ tone_prompt = (
86
+ "์ „๋ฌธ์ ์ธ:\n"
87
+ "1. ํ†ค๊ณผ ๊ตฌ์กฐ: ๊ณต์‹์ ์ด๊ณ  ํ•™์ˆ ์ ์ธ ํ†ค์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ช…ํ™•ํ•œ ์„œ๋ก , ๋ณธ๋ก , ๊ฒฐ๋ก  ๊ตฌ์กฐ๋กœ ์ฒด๊ณ„์ ์œผ๋กœ ์ „๊ฐœํ•˜๋ผ.\n"
88
+ "2. ๋‚ด์šฉ ๊ตฌ์„ฑ: ๋ณต์žกํ•œ ๊ฐœ๋…์„ ์ •ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ „๋ฌธ ์šฉ์–ด์™€ ์‹ฌ์ธต ๋ถ„์„์„ ํ™œ์šฉํ•˜๋ผ.\n"
89
+ "3. ๋ฐ์ดํ„ฐ ํ™œ์šฉ: ํ†ต๊ณ„, ์—ฐ๊ตฌ ๊ฒฐ๊ณผ, ์ „๋ฌธ๊ฐ€ ์˜๊ฒฌ ๋“ฑ์„ ์ธ์šฉํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๋ผ.\n"
90
+ "4. ํ…์ŠคํŠธ ๊ตฌ์กฐํ™”: ๋ฒˆํ˜ธ ๋งค๊ธฐ๊ธฐ, ๊ธฐ์šธ์ž„๊ผด, ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ๊ฐ•์กฐํ•˜๋ผ.\n"
91
+ "5. ๋งˆ๋ฌด๋ฆฌ: ํ•ต์‹ฌ ๋…ผ์ ์„ ์žฌ๊ฐ•์กฐํ•˜๊ณ  ํ–ฅํ›„ ์—ฐ๊ตฌ๋‚˜ ์‹ค๋ฌด์  ํ•จ์˜๋ฅผ ์ œ์‹œํ•˜๋ผ."
92
+ )
93
+ else:
94
+ tone_prompt = "์•„๋ž˜์˜ ์ฐธ์กฐ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ƒ์„ฑํ•˜๋ผ."
95
+
96
+ # ์ตœ์ข… system_message๋Š” tone_prompt์™€ base_prompt๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ตฌ์„ฑ
97
+ system_message = tone_prompt + "\n" + base_prompt
98
+
99
+ # ํ”„๋กฌํ”„ํŠธ์— ์ฐธ์กฐ๊ธ€ ๋‚ด์šฉ์„ ๋ฐ˜์˜ (์ฐธ๊ณ ๊ธ€์€ ์ง์ ‘ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜)
100
+ question = f"์ฐธ์กฐ๊ธ€ 1: {ref1}\n์ฐธ์กฐ๊ธ€ 2: {ref2}\n์ฐธ์กฐ๊ธ€ 3: {ref3}\n์œ„ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ฃผ์ œ์™€ ์ƒํ™ฉ์— ๋งž๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋ผ. ๋‹จ, ์ฐธ๊ณ ๊ธ€์˜ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ์ธ์šฉํ•˜์ง€ ๋ง๋ผ."
101
+
102
+ # ๊ณ ๊ธ‰ ์„ค์ •์€ ์ฝ”๋“œ ๋‚ด๋ถ€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ง€์ •
103
  max_tokens = 2000
104
  temperature = 0.7
105
  top_p = 0.95
106
+
107
  return respond_chatgpt_qna(
108
  question=question,
109
  system_message=system_message,
 
115
  with gr.Blocks() as demo:
116
  gr.Markdown("# ๋ธ”๋กœ๊ทธ ์ƒ์„ฑ๊ธฐ")
117
 
 
118
  tone_radio = gr.Radio(
119
  choices=["์นœ๊ทผํ•˜๊ฒŒ", "์ผ๋ฐ˜์ ์ธ", "์ „๋ฌธ์ ์ธ"],
120
  label="๋งํˆฌ๋ฐ”๊พธ๊ธฐ",