Spaces:
Sleeping
Sleeping
Create utils/llm.py
Browse files- utils/llm.py +48 -0
utils/llm.py
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import time
|
| 2 |
+
import random
|
| 3 |
+
|
| 4 |
+
def get_ai_response(user_query, persona, context_data=None):
|
| 5 |
+
"""
|
| 6 |
+
LLM ํธ์ถ์ ์๋ฎฌ๋ ์ด์
ํ๋ ํจ์.
|
| 7 |
+
๋์ค์ ์ฌ๊ธฐ์ ์ค์ Ollama/OpenAI API ์ฐ๋ ์ฝ๋๋ฅผ ๋ฃ์ผ๋ฉด ๋จ.
|
| 8 |
+
|
| 9 |
+
Args:
|
| 10 |
+
user_query (str): ์ฌ์ฉ์์ ๊ณ ๋ฏผ
|
| 11 |
+
persona (dict): ์ ํ๋ ํ๋ฅด์๋ ์ ๋ณด (prompts.py์์ ์ด)
|
| 12 |
+
context_data (any): ํ๋ก ์นด๋ ๋ฆฌ์คํธ ๋ฑ ์ถ๊ฐ ์ ๋ณด
|
| 13 |
+
"""
|
| 14 |
+
|
| 15 |
+
# ์ค์ ์ฐ๋ ์:
|
| 16 |
+
# prompt = f"{persona['system_prompt']}\n\nUser: {user_query}\nContext: {context_data}"
|
| 17 |
+
# response = llm.invoke(prompt)
|
| 18 |
+
|
| 19 |
+
# --- ์๋ฎฌ๋ ์ด์
์๋ต (๊ฐ์ง) ---
|
| 20 |
+
time.sleep(2) # ์๊ฐํ๋ ์ฒ ๋๋ ์ด
|
| 21 |
+
|
| 22 |
+
style = persona["name"]
|
| 23 |
+
|
| 24 |
+
if "ํ๋ก" in style:
|
| 25 |
+
cards = context_data if context_data else []
|
| 26 |
+
card_names = [c['name'] for c in cards]
|
| 27 |
+
return f"""
|
| 28 |
+
(์นด๋๋ฅผ ์์ํ๋ฉฐ...) ํ์, **{', '.join(card_names)}** ์นด๋๊ฐ ๋์๊ตฐ์.
|
| 29 |
+
๋น์ ์ ๊ณ ๋ฏผ์ธ '{user_query}'์ ๋ํด ์นด๋๋ '๋ณํ'๋ฅผ ์์ํ๊ณ ์์ต๋๋ค.
|
| 30 |
+
ํนํ {card_names[0]} ์นด๋๋ ๋น์ ์ ๊ณผ๊ฑฐ๊ฐ ๊ทธ๋ฆฌ ํํ์น ์์์์ ๋ณด์ฌ์ฃผ๋๊ตฐ์.
|
| 31 |
+
ํ์ง๋ง ๊ฑฑ์ ๋ง์ธ์. ๋ณ๋ค์ด ๋น์ ์ ์ง์ผ๋ณด๊ณ ์์ต๋๋ค.
|
| 32 |
+
"""
|
| 33 |
+
|
| 34 |
+
elif "ํ์" in style:
|
| 35 |
+
return f"""
|
| 36 |
+
์ดํ, '{user_query}'๋ผ๊ณ ? ์๋ค ์ง ๊ตฌ์กฐ๊ฐ ๋์ ํคํ๊ตฌ๋ง.
|
| 37 |
+
๋ถ์ชฝ์ ๋จธ๋ฆฌ๋ฅผ ๋๊ณ ์๊ณ ์์ง ์๋? ๋น์ฅ ์นจ๋ ๋จธ๋ฆฌ ๋ฐฉํฅ๋ถํฐ ๋ฐ๊พธ๊ฒ!
|
| 38 |
+
ํ๊ด์๋ ๊ด์ฝ์๋ฌผ์ ๋ฌ์ผ ๋์ ๊ธฐ์ด์ด ๊ฑธ๋ฌ์ง๋ ๋ฒ์ผ์ธ. ๋ช
์ฌํ๊ฒ.
|
| 39 |
+
"""
|
| 40 |
+
|
| 41 |
+
elif "์ ์์ด" in style:
|
| 42 |
+
return f"""
|
| 43 |
+
์ผ! ๋ ์ผ๊ตด์ด ์ ๊ทธ๋? '{user_query}' ๋๋ฌธ์ ์ ๋ ๋ชป ์์ง?
|
| 44 |
+
๋ด๊ฐ ๋ฑ ๋ณด๋๊น, ๋ ์ง๊ธ ๋ด ์๊ฐ ํ๊ณ ์๋ค.
|
| 45 |
+
์ฌํด ์์ ๋ฌธ์ ์ด ๋ค์ด์ค๋๊น, ๋ด ์ง ํ์ง ๋ง๊ณ ํ๋ ๊ฑฐ๋ ์ด์ฌํ ํด! ์์์ด?
|
| 46 |
+
"""
|
| 47 |
+
|
| 48 |
+
return "์ ๋ น๋์ด ์๋ตํ์ง ์์ต๋๋ค..."
|