Update app.py
Browse files
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 |
-
|
| 42 |
-
|
| 43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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="๋งํฌ๋ฐ๊พธ๊ธฐ",
|