Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -82,6 +82,45 @@ def ask_sayknow(query):
|
|
| 82 |
else:
|
| 83 |
answer = raw_response.strip()
|
| 84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
# ๋ฌธ์ฅ ๋ ์ฒ๋ฆฌ
|
| 86 |
if answer and answer[-1] not in ".!?":
|
| 87 |
answer += "."
|
|
|
|
| 82 |
else:
|
| 83 |
answer = raw_response.strip()
|
| 84 |
|
| 85 |
+
# 2. '๋ต๋ณ:' ํค์๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ง์ง ๋ต๋ณ ๋ถ๋ถ ์ถ์ถ
|
| 86 |
+
if "๋ต๋ณ:" in extracted_answer:
|
| 87 |
+
answer = extracted_answer.split("๋ต๋ณ:", 1)[1].strip() # ์ฒซ ๋ฒ์งธ "๋ต๋ณ:" ์ดํ๋ง
|
| 88 |
+
else:
|
| 89 |
+
# ๋ง์ฝ "๋ต๋ณ:" ํ๊ทธ๊ฐ ์์ผ๋ฉด, ํ๋กฌํํธ์ ์ง์์ฌํญ ์ค๋ณต ๋ฑ์ ์ ๊ฑฐ ์๋
|
| 90 |
+
persona_end_marker = "๋ตํด.\n" # persona_guide์ ํน์ ๋ ๋ถ๋ถ์ ํ์
|
| 91 |
+
if persona_end_marker in extracted_answer:
|
| 92 |
+
try:
|
| 93 |
+
answer = extracted_answer[extracted_answer.rindex(persona_end_marker) + len(persona_end_marker):].strip()
|
| 94 |
+
except ValueError:
|
| 95 |
+
answer = extracted_answer # ์๋๋ฉด ๊ทธ๋ฅ ์ ์ฒด ์ฌ์ฉ
|
| 96 |
+
else:
|
| 97 |
+
answer = extracted_answer # ๊ทธ๊ฒ๋ ์์ผ๋ฉด ๊ทธ๋ฅ ์ ์ฒด ์ฌ์ฉ
|
| 98 |
+
|
| 99 |
+
# ๊ทธ๋๋ ๋ต๋ณ์ด ๋น์ด์์ผ๋ฉด ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋์ฒด
|
| 100 |
+
if not answer:
|
| 101 |
+
answer = "์ฃ์กํฉ๋๋ค. ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์ฐพ์ ์ ์๊ฑฐ๋ ๋ด์ฉ์ด ๋ช
ํํ์ง ์์ต๋๋ค."
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
# 1. ์๋ฏธ ์๋ ์์/์๋ฌธ/ํน์๋ฌธ์/๋ฐ๋ณต๋ฌธ์ ๋ฑ ํํฐ๋ง (๊ธฐ์กด๊ณผ ๋์ผ)
|
| 105 |
+
# ์ด ๋ถ๋ถ์ ๋จผ์ ํ๋ฒ ์ ์ฉํด์ answer๊ฐ ์๋ฑํ ๋ฌธ์์ด์ด ๋๋ ๊ฑธ ๋ฐฉ์ง
|
| 106 |
+
answer = re.sub(r"[^๊ฐ-ํฃ0-9 .,!?~\n]", "", answer)
|
| 107 |
+
answer = re.sub(r"([.,!?~])\1{2,}", r"\1", answer)
|
| 108 |
+
answer = re.sub(r"[a-zA-Z]+", "", answer)
|
| 109 |
+
answer = re.sub(r"[=^*/\\]+", "", answer)
|
| 110 |
+
answer = re.sub(r"\s+", " ", answer).strip()
|
| 111 |
+
|
| 112 |
+
# 2. 80์ ์ด๋ด๋ก ์๋ฅด๊ธฐ (ํ๊ธ ๊ธฐ์ค) (๊ธฐ์กด๊ณผ ๋์ผ)
|
| 113 |
+
def truncate_korean(text, max_len=80):
|
| 114 |
+
count = 0
|
| 115 |
+
result = ""
|
| 116 |
+
for ch in text:
|
| 117 |
+
result += ch
|
| 118 |
+
count += 1
|
| 119 |
+
if count >= max_len:
|
| 120 |
+
break
|
| 121 |
+
return result
|
| 122 |
+
answer = truncate_korean(answer, 80)
|
| 123 |
+
|
| 124 |
# ๋ฌธ์ฅ ๋ ์ฒ๋ฆฌ
|
| 125 |
if answer and answer[-1] not in ".!?":
|
| 126 |
answer += "."
|