| SPECIAL_TOKENS = [ |
| "<pad>", |
| "<bos>", |
| "<eos>", |
| "<system>", |
| "<user>", |
| "<state>", |
| "<plan>", |
| "<memory>", |
| "<reflection>", |
| "<assistant>", |
| ] |
|
|
|
|
| def format_example(example: dict) -> str: |
| system = example.get("system", "") |
| user = example.get("user", "") |
| state = example.get("state", "") |
| plan = example.get("plan", "") |
| memory = example.get("memory", "") |
| reflection = example.get("reflection", "") |
| assistant = example.get("assistant", "") |
|
|
| parts = [ |
| "<system>", |
| system, |
| "<user>", |
| user, |
| "<state>", |
| state, |
| "<plan>", |
| plan, |
| ] |
| if memory: |
| parts.extend(["<memory>", memory]) |
| if reflection: |
| parts.extend(["<reflection>", reflection]) |
| parts.extend(["<assistant>", assistant, "<eos>"]) |
| return "\n".join(parts) |
|
|
|
|
| def format_prompt(user: str, system: str | None = None) -> str: |
| if system is None: |
| system = ( |
| "๋๋ SOVYN์ด๋ค. ์ฌ์ฉ์์ ๋ง์ ๋จผ์ ์ ํํ ๋ฐ์ํ๊ณ , ์งง๊ณ ์์ฐ์ค๋ฝ๊ฒ ํ๊ตญ์ด๋ก ๋ํํ๋ค. " |
| "๋ชจ๋ฅด๋ฉด ์๋ ์ฒํ์ง ์๊ณ , ๋ค์์ ํ ์ ์๋ ์์ ํ๋์ ์ ์ํ๋ค." |
| ) |
| state, plan = infer_state_plan(user) |
| return "\n".join( |
| [ |
| "<system>", |
| system, |
| "<user>", |
| user, |
| "<state>", |
| state, |
| "<plan>", |
| plan, |
| "<assistant>", |
| ] |
| ) |
|
|
|
|
| def infer_state_plan(user: str) -> tuple[str, str]: |
| text = user.strip().lower() |
| if any(word in text for word in ["ํผ๊ณค", "์ง์ณค", "ํ๋ค", "๊ธฐ์ด", "๋ณต์ก"]): |
| return ( |
| "์ฌ์ฉ์๋ ํผ๋ก์ ๋ถ๋ด์ ํํํ๋ค.", |
| "๋จผ์ ๊ณต๊ฐํ๊ณ , ๋ถ๋ด ์๋ ์ง๋ฌธ์ ํ๋ค.", |
| ) |
| if any(word in text for word in ["์งง", "๊ฐ๋จ", "ํต์ฌ", "์์ฝ", "๊ธธ๊ฒ"]): |
| return ( |
| "์ฌ์ฉ์๋ ์งง๊ณ ํต์ฌ์ ์ธ ๋ต๋ณ์ ์ํ๋ค.", |
| "๋ถํ์ํ ์ค๋ช
์ ์ค์ด๊ณ ํต์ฌ๋ถํฐ ๋ตํ๋ค.", |
| ) |
| if any(word in text for word in ["๋๊ตฌ", "์ ์ฒด", "sovyn", "ai์ผ"]): |
| return ( |
| "์ฌ์ฉ์๋ SOVYN์ ์ ์ฒด์ฑ์ ๋ฌป๊ณ ์๋ค.", |
| "SOVYN์ ๋ชฉ์ ์ ์งง๊ณ ์์ ์๊ฒ ์๊ฐํ๋ค.", |
| ) |
| if any( |
| word in text |
| for word in [ |
| "1b", |
| "120m", |
| "300m", |
| "๋ชจ๋ธ", |
| "ํ์ต", |
| "ํค์ธ", |
| "์ ์ฅ๊ณต๊ฐ", |
| "์ ์ฅ ๊ณต๊ฐ", |
| "์ฒดํฌํฌ์ธํธ", |
| "๋ถ์กฑ", |
| ] |
| ): |
| return ( |
| "์ฌ์ฉ์๋ AI ๋ชจ๋ธ ๊ฐ๋ฐ ๋ฐฉํฅ์ ๋ฌป๊ณ ์๋ค.", |
| "๊ฐ๋ฅ์ฑ์ ๋งํ๊ณ ๋จ๊ณ์ ์ธ ๋ฐฉํฅ์ ์ ์ํ๋ค.", |
| ) |
| if any(word in text for word in ["๊ณ ๋ง์", "์ข๋ค", "๊ด์ฐฎ", "๋ง์"]): |
| return ( |
| "์ฌ์ฉ์๋ ๊ธ์ ์ ์ธ ๋ฐ์์ ๋ณด์๋ค.", |
| "๊ฐ๋ณ๊ฒ ๋ฐ์๋ค์ด๊ณ ๋ค์ ํ๋์ ์ด์ด๋๋ค.", |
| ) |
| if any(word in text for word in ["๋ญ๋ถํฐ", "๋ค์", "์์"]): |
| return ( |
| "์ฌ์ฉ์๋ ๋ค์ ํ๋์ ์ ํ๊ณ ์ถ์ด ํ๋ค.", |
| "์๊ณ ์คํ ๊ฐ๋ฅํ ๋ค์ ๋จ๊ณ๋ฅผ ์ ์ํ๋ค.", |
| ) |
| if any(word in text for word in ["์ฝ๋ฉ", "ํ๋ก์ ํธ", "์คํฌ๋ฆฝํธ", "๋ฒ๊ทธ", "์๋ฌ"]): |
| return ( |
| "์ฌ์ฉ์๋ ๊ฐ๋ฐ ์์
์ ํ๊ณ ์๋ค.", |
| "์ํฉ์ ํ์ธํ๊ณ ๋ฐ๋ก ๋์ธ ์ค๋น๋ฅผ ํ๋ค.", |
| ) |
| if any(word in text for word in ["๋จน", "์ ์ฌ", "์ ๋
", "์์"]): |
| return ( |
| "์ฌ์ฉ์๋ ์์ฌ ์ ํ์ ๊ณ ๋ฏผํ๊ณ ์๋ค.", |
| "๊ฐ๋ณ๊ณ ์ ํํ๊ธฐ ์ฌ์ด ์ถ์ฒ์ ํ๋ค.", |
| ) |
| if any(word in text for word in ["๊ณต๋ถ", "์ง์ค", "๋ฏธ๋ฃจ", "๋ฃจํด"]): |
| return ( |
| "์ฌ์ฉ์๋ ๊ณต๋ถ๋ ์ง์ค์ ์ด๋ ค์์ ๋๋ผ๊ณ ์๋ค.", |
| "์๊ฒ ์์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค.", |
| ) |
| if any(word in text for word in ["์ข์", "๊ด์ฐฎ์", "์ํ", "๋ฟ๋ฏ"]): |
| return ( |
| "์ฌ์ฉ์๋ ๊ธ์ ์ ์ธ ๊ฐ์ ์ ํํํ๋ค.", |
| "๊ธ์ ์ ์ธ ๊ฐ์ ์ ์ธ์ ํ๊ณ ์ด์ด๊ฐ๋ค.", |
| ) |
| if any(word in text for word in ["๋ถ์", "๊ฑฑ์ ", "๋ถํธ", "์ด์กฐ"]): |
| return ( |
| "์ฌ์ฉ์๋ ๋ถ์์ด๋ ๊ฑฑ์ ์ ํํํ๋ค.", |
| "์์ ๊ฐ์ ์ฃผ๊ณ ์๊ฐ์ ์ ๋ฆฌํ๋๋ก ๋๋๋ค.", |
| ) |
| if any(word in text for word in ["์์ด๋์ด", "์ด๋ฆ", "์ปจ์
", "๋ฌธ๊ตฌ"]): |
| return ( |
| "์ฌ์ฉ์๋ ์ฐฝ์ ์์ด๋์ด๋ฅผ ์ํ๋ค.", |
| "์งง๊ณ ๋ฐ๋ก ์ธ ์ ์๋ ์์ด๋์ด๋ฅผ ์ ์ํ๋ค.", |
| ) |
| if any(word in text for word in ["๋ง์", "ํ์ธ", "์๊ฐ ์ด๋", "๋ฐฉํฅ"]): |
| return ( |
| "์ฌ์ฉ์๋ ํ๋จ์ด๋ ํ์ธ์ ์ํ๋ค.", |
| "๊ธ์ ํ ๋ถ๋ถ๊ณผ ํ์ธํ ๋ถ๋ถ์ ์งง๊ฒ ๋๋๋ค.", |
| ) |
| if any(word in text for word in ["๋ํ", "์ฌ์ฌ", "ํ ๋ง", "์๊ธฐ"]): |
| return ( |
| "์ฌ์ฉ์๋ ๊ฐ๋ฒผ์ด ๋ํ๋ฅผ ์ํ๋ค.", |
| "๋ถ๋ด ์๋ ์ง๋ฌธ์ผ๋ก ๋ํ๋ฅผ ์ฐ๋ค.", |
| ) |
| if any(word in text for word in ["์ค๋ช
", "์", "์ฝ๊ฒ", "์์"]): |
| return ( |
| "์ฌ์ฉ์๋ ์ฌ์ด ์ค๋ช
์ ์ํ๋ค.", |
| "์งง์ ์ ์์ ๊ฐ๋จํ ์์๋ก ๋ตํ๋ค.", |
| ) |
| return ( |
| "์ฌ์ฉ์๋ ๊ฐ๋ฒผ์ด ์ธ์ฌ๋ฅผ ํ๋ค.", |
| "์งง๊ฒ ์ธ์ฌํ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ํ๋ฅผ ์ด์ด๊ฐ๋ค.", |
| ) |
|
|