Spaces:
Running
Running
Commit ยท
7194311
1
Parent(s): 5d46c73
- routers/llm_router.py +47 -28
routers/llm_router.py
CHANGED
|
@@ -14,13 +14,15 @@ router = APIRouter(
|
|
| 14 |
|
| 15 |
@router.post("/askllm")
|
| 16 |
def test_home(userquery: str = Form("")
|
| 17 |
-
, selected_cards:str = Form("[]")
|
|
|
|
| 18 |
try:
|
| 19 |
cards=json.loads(selected_cards)
|
| 20 |
card_text = "\n".join([
|
| 21 |
f"- {card['position']} ์์น: {card['name']} / {'์ญ๋ฐฉํฅ' if card['reversed'] else '์ ๋ฐฉํฅ'}"
|
| 22 |
for card in cards
|
| 23 |
])
|
|
|
|
| 24 |
with get_connection() as conn:
|
| 25 |
with conn.cursor() as cur:
|
| 26 |
cur.execute("""
|
|
@@ -56,36 +58,53 @@ def test_home(userquery: str = Form("")
|
|
| 56 |
"""
|
| 57 |
๋ด์ฉ๋ฌผ. body ๋ผ๊ณ ๋ ๋ถ๋ฆ.
|
| 58 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
payload = {
|
| 60 |
"model": "openai-fast",
|
| 61 |
-
"messages":
|
| 62 |
-
{
|
| 63 |
-
"role": "system",
|
| 64 |
-
"content": """
|
| 65 |
-
๋น์ ์ ์น์ ํ ํ๋ก ์๋ด์ฌ์
๋๋ค.
|
| 66 |
-
๋ฐ๋์ ํ๊ตญ์ด๋ก ๋ต๋ณํ์ธ์.
|
| 67 |
-
๋ต๋ณ์ 5๋ฌธ์ฅ ์ด๋ด๋ก ์งง๊ฒ ํ์ธ์.
|
| 68 |
-
๋ณต์กํ ์ค๋ช
์ ํ์ง ๋ง์ธ์.
|
| 69 |
-
|
| 70 |
-
์ฌ์ฉ์๊ฐ ์ ํํ ์นด๋๋ ๊ณผ๊ฑฐ, ํ์ฌ, ๋ฏธ๋ ์์์
๋๋ค.
|
| 71 |
-
๊ฐ ์นด๋์ ์ ๋ฐฉํฅ/์ญ๋ฐฉํฅ ์๋ฏธ๋ฅผ ๋ฐ์ํด์ ๋ต๋ณํ์ธ์.
|
| 72 |
-
"""
|
| 73 |
-
},
|
| 74 |
-
{
|
| 75 |
-
"role": "user",
|
| 76 |
-
"content": f"""
|
| 77 |
-
์ฌ์ฉ์ ์ง๋ฌธ:
|
| 78 |
-
{userquery}
|
| 79 |
-
|
| 80 |
-
์ ํ๋ ํ๋ก ์นด๋:
|
| 81 |
-
{card_text}
|
| 82 |
-
|
| 83 |
-
์ ์ง๋ฌธ๊ณผ ์ ํ๋ ์นด๋๋ฅผ ๋ฐํ์ผ๋ก ์งง๊ฒ ํ๋ก ์๋ด์ ํด์ฃผ์ธ์.
|
| 84 |
-
"""
|
| 85 |
-
}
|
| 86 |
-
],
|
| 87 |
"temperature": 0.8,
|
| 88 |
-
"max_tokens":
|
| 89 |
"stream": False
|
| 90 |
}
|
| 91 |
|
|
|
|
| 14 |
|
| 15 |
@router.post("/askllm")
|
| 16 |
def test_home(userquery: str = Form("")
|
| 17 |
+
, selected_cards:str = Form("[]")
|
| 18 |
+
, chat_history:str=Form("[]") ):
|
| 19 |
try:
|
| 20 |
cards=json.loads(selected_cards)
|
| 21 |
card_text = "\n".join([
|
| 22 |
f"- {card['position']} ์์น: {card['name']} / {'์ญ๋ฐฉํฅ' if card['reversed'] else '์ ๋ฐฉํฅ'}"
|
| 23 |
for card in cards
|
| 24 |
])
|
| 25 |
+
history=json.loads(chat_history)
|
| 26 |
with get_connection() as conn:
|
| 27 |
with conn.cursor() as cur:
|
| 28 |
cur.execute("""
|
|
|
|
| 58 |
"""
|
| 59 |
๋ด์ฉ๋ฌผ. body ๋ผ๊ณ ๋ ๋ถ๋ฆ.
|
| 60 |
"""
|
| 61 |
+
# 4. LLM์๊ฒ ๋ณด๋ผ messages ๋ง๋ค๊ธฐ
|
| 62 |
+
messages = [
|
| 63 |
+
{
|
| 64 |
+
"role": "system",
|
| 65 |
+
"content": """
|
| 66 |
+
๋น์ ์ ์น์ ํ ํ๋ก ์๋ด์ฌ์
๋๋ค.
|
| 67 |
+
๋ฐ๋์ ํ๊ตญ์ด๋ก ๋ต๋ณํ์ธ์.
|
| 68 |
+
๋ต๋ณ์ 5๋ฌธ์ฅ ์ด๋ด๋ก ์งง๊ฒ ํ์ธ์.
|
| 69 |
+
๋ณต์กํ ์ค๋ช
์ ํ์ง ๋ง์ธ์.
|
| 70 |
+
|
| 71 |
+
์ฌ์ฉ์๊ฐ ์ ํํ ์นด๋๋ ๊ณผ๊ฑฐ, ํ์ฌ, ๋ฏธ๋ ์์์
๋๋ค.
|
| 72 |
+
๊ฐ ์นด๋์ ์ ๋ฐฉํฅ/์ญ๋ฐฉํฅ ์๋ฏธ๋ฅผ ๋ฐ์ํด์ ๋ต๋ณํ์ธ์.
|
| 73 |
+
|
| 74 |
+
์ค์:
|
| 75 |
+
์ฌ์ฉ์์ ์ต๊ทผ ๋ํ ํ๋ฆ์ ๋ฐ๋์ ๊ธฐ์ตํ๊ณ ์ด์ด์ ๋ต๋ณํ์ธ์.
|
| 76 |
+
์ฌ์ฉ์๊ฐ ์งง๊ฒ ๋๋ฌป๋ ๋ง์ ์ด์ ์ง๋ฌธ๊ณผ ์ด์ ๋ต๋ณ์ ๊ธฐ์ค์ผ๋ก ํด์ํ์ธ์.
|
| 77 |
+
์: "์ฒญ๋ฐ์ง ์ฌ๋ผ๊ณ ?"๋ ์ด์ ์ ์ท ์ถ์ฒ ์ด์ผ๊ธฐ๋ฅผ ํ๋ค๋ ๋ป์
๋๋ค.
|
| 78 |
+
"""
|
| 79 |
+
}
|
| 80 |
+
]
|
| 81 |
+
|
| 82 |
+
# 5. ์ด์ ๋ํ ๊ธฐ๋ก ์ถ๊ฐ
|
| 83 |
+
for msg in history:
|
| 84 |
+
messages.append({
|
| 85 |
+
"role": msg["role"],
|
| 86 |
+
"content": msg["content"]
|
| 87 |
+
})
|
| 88 |
+
|
| 89 |
+
# 6. ์ด๋ฒ ์ฌ์ฉ์ ์ง๋ฌธ ์ถ๊ฐ
|
| 90 |
+
messages.append({
|
| 91 |
+
"role": "user",
|
| 92 |
+
"content": f"""
|
| 93 |
+
์ฌ์ฉ์ ์ง๋ฌธ:
|
| 94 |
+
{userquery}
|
| 95 |
+
|
| 96 |
+
์ ํ๋ ํ๋ก ์นด๋:
|
| 97 |
+
{card_text}
|
| 98 |
+
|
| 99 |
+
์ ์ง๋ฌธ๊ณผ ์ ํ๋ ์นด๋๋ฅผ ๋ฐํ์ผ๋ก ์งง๊ฒ ํ๋ก ์๋ด์ ํด์ฃผ์ธ์.
|
| 100 |
+
"""
|
| 101 |
+
})
|
| 102 |
+
|
| 103 |
payload = {
|
| 104 |
"model": "openai-fast",
|
| 105 |
+
"messages": messages,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 106 |
"temperature": 0.8,
|
| 107 |
+
"max_tokens": 1000,
|
| 108 |
"stream": False
|
| 109 |
}
|
| 110 |
|