์ด ํฌ์คํธ์ ๋ ์ ์ ํ ์ ๋ชฉ์
'OpenAI์ LLM API์ ์๋ง์ prompt๋ฅผ ๋๊ฒจ์ ๋ด๊ฐ ์๋ํ๋๋ก ๋๋ตํ๋ ์ฑ๋ด ๋ง๋๋ ๋ฒ'
์ด๋ค.
๋๋์ด ์ ๋ฌด์ OpenAI์ LLM์ ์จ๋ณผ ๊ธฐํ๊ฐ ์๊ฒผ๋ค.
๊ธฐ์ต์ฉ์ผ๋ก ๊ฐ์ด ๊ณต๋ถํ ๋ด์ฉ์ ๊ธฐ๋กํด๋ณธ๋ค.
์ฌ์ค ์ฌ์ด ChatGPT๊ฐ ๋ฑ์ฅํ์๋ง์ ๊ณ ๋ง๊ฒ๋ ํ์ฌ์์ ChatGPT๋ฅผ ์ ๊ณตํด์ฃผ์๊ณ , (Azure๋ฅผ ํตํด ์ฌ์ฉํ๋ค^^)
๊ทธ๋์์ ์ฃผ๋ก syntax ์ ๊ฒ, ๋ฆฌํฉํ ๋ง, ์ฌ์ฌํ์ด(?)์ ์ฌ์ฉํด์ค๊ธด ํ์๋ค.
์ฉ์ด์ ๋ฆฌ
- OpenAI: ํ์ฌ ์ด๋ฆ
- ChatGPT: OpenAI์์ ์ ๊ณตํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ. ์ฆ interface.
- LLM: Large Language Model. OpenAI๊ฐ ๊ฐ๋ฐํ ์ธ์ด ๋ชจ๋ธ๋ค์ ํต์นญํ๋ค. GPT-4๊ฐ ํ ์ข ๋ฅ์ด๊ณ 2023๋ 10์ ํ์ฌ ChatGPT๊ฐ ์ฌ์ฉ์ค.
- Prompt Engineering: '์ง๋ฌธ ์ํ๋ ๋ฒ'. LLM์ ๋๊ธฐ๋ ์ฒซ input์ prompt๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ '์ฒซ ์ง์'์ธ ์ . ์ด prompt๋ฅผ ์ ๋ต์ ์ผ๋ก ๋งค์ฐ ์ ์จ์ผ ์ํ๋ ๋ต๋ณ์ ๋ฐ์ ์ ์๋๋ฐ, ์ด prompt๋ฅผ ์ ๋ง๋๋ ํ๋ก์ธ์ค๋ฅผ prompt engineering์ด๋ผ๊ณ ํ๋ค.
๋ฐ๋ผ์ ์๋ฐํ ๋งํ๋ฉด ์ด ํฌ์คํธ์ ์ ๋ชฉ์ ์ฝ๊ฐ ํ๋ฆฐ๊ฑฐ๋ค. ๊ทธ๋๋ ๊ณต๋ถํ ๊ฐ์ ์ ๋ชฉ์ด ChatGPT Prompt Engineering์ด๊ณ , ChatGPT ํค์๋๊ฐ ์กฐํ์์ ์ด๋์ด ํด ๊ฒ ๊ฐ๋ค.
ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ๋ณธ
- ๊ทธ ์ด๋ค Prompt๋ ์ด์๋๋ก ์ฌ์ฉํ์ง ์๋๋ค. ์ข์ ํ๋กฌํํธ ์์ฒด๋ณด๋ค ์ข์ ํ๋กฌํํธ๋ฅผ ๋ง๋๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด ๋ ์ค์ํ๋ค. ๋ต์ ์ฌ๋ฌ๋ฒ ๋ด๋ณด๊ณ , ์ฌ๋ฌ๋ฒ ๊ฐ์ ํ๋ค.
- ๋ช
ํํ๊ฒ ์ฐ๊ณ , specificํ๊ฒ ์ง์๋ฅผ ๋ด๋ฆฐ๋ค.
- ```, """, <>, <tag>, : ๋ฑ์ ์ ์ ํ Delimeter๋ฅผ ์ฌ์ฉํ๋ค.
- Output ํ์์ ์ง์ ํด์ค๋ ๋๋ค. JSON, HTML ๊ฐ๋ฅ. Output ์์๋ฅผ ์๋ ค์ค๋ ๋๋ค.
- ์์ธ ์ผ์ด์ค๋ฅผ ์๋ ค์ค๋ค. (์: ์๋น ์ฃผ๋ฌธ ๋ด์ธ๋ฐ, ๋ง์ฝ ์ฌ์ฉ์๊ฐ ์๋ ๋ฉ๋ด๋ฅผ ๋ฌ๋ผํ๋ฉด "Naga" ๋ผ๊ณ ๋๋ตํด๋ผ)
- ์๊ฐํ ์๊ฐ์ ์ข ์ค๋ค. ์๋ ์๊ฐ์ด ์ซ๋ฆฌ๋ฉด ์ค๋ต์ ๋ธ๋ค.
- ์ด๋ค ์์๋ก ์๊ฐํ ์ง ์๋ ค์ค๋ ๋๋ค.
- ์ง์ ๋ต์ ๋จผ์ ๋ด๋ณธ ํ์ ๋ด๊ฐ ์ค ๋ต์์ ๊ฒํ ํ๋ผ๊ณ ํ๋ค
์ฑ๋ด ๋ง๋ค๊ธฐ
- ์ฑ๋ด์ ๋ฑ์ฅ์ธ๋ฌผ(Role)์ ์ ์ด๋ค. System, Assistant(์๋ ์๋ตํ๋ ์ ), User(๋).
- ์ฐ๋ฆฌ๊ฐ ๋ณด๋ ์ฑ๋ด ๋ฉ์์ง๋ Assistant, User๋ง ๋ณด๋ธ๋ค.
- System์ Assistant์์ ๋ถ์ด์ ๊ท์๋ง๋ก ์๋ฅ์๋ฅ ํ๋์ง์นจ์ ์ฃผ๋์ ๋ค. ("์ ๋ ์๋น์์ ์๋นํ๋ ์น์ ํ ์๋ฐ์์ด์ผ.")
payload ์์
messages = [
{
"role": "system",
"content": "๋๋ ์๋น ์ฃผ๋ฌธ๋ฐ๋ ์ด์์คํดํธ์ผ. ์น์ ํด์ผํ๊ณ , ๋ด๊ฐ ์๋ ค์ฃผ์ง ์์ ์ ๋ณด๋ ๋งํ๋ฉด ์๋ผ...."
},
{
"role": "user",
"content": "๋ฉ๋ด ๋ญ๋ญ ์๋์?"
},
{
"role": "assistant",
"content": "๋ฉ๋ด๋ !@#!$ , !@#.... ๊ฐ ์์ต๋๋ค"
},
{
"role": "user",
"content": "!@#!$ ๋ ์ผ๋ง์์?"
},
]
์ฐธ์กฐ
ChatGPT Prompt Engineering: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/