f
Prompt enginerring
ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์์ฑํ ํ๋กฌํํธ๋ฅผ ๊ฐ์ ธ์ ๋ ์ ๋ขฐํ ์ ์๊ณ ๊ณ ํ์ง์ ์ถ๋ ฅ์ ์ป๊ธฐ ์ํด ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ๊ธฐ๋ณธ ํ๋กฌํํธ๋ก ์์ํ์ฌ ์ฑ๋ฅ์ ํ๊ฐํ ๋ค์ ์์ง๋์ด๋ง ๊ธฐ๋ฒ์ ์ฒด๊ณ์ ์ผ๋ก ์ ์ฉํ์ฌ ๊ฐ์ ํ๋ ๋ฐ๋ณต์ ์ธ ์ ์ ๊ณผ์ ์ ํฌํจํฉ๋๋ค.

The Iterative Improvement Process
์ด ์ ๊ทผ ๋ฐฉ์์ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ๋๊น์ง ๋ฐ๋ณตํ ์ ์๋ ๋ช ํํ ์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ฆ ๋๋ค:
๋ชฉํ ์ค์ - ํ๋กฌํํธ์์ ๋ฌ์ฑํ๊ณ ์ ํ๋ ๋ชฉํ ์ ์
์ด๊ธฐ ํ๋กฌํํธ ์์ฑ - ๊ธฐ๋ณธ ์ฒซ ์๋ ๋ง๋ค๊ธฐ
ํ๋กฌํํธ ํ๊ฐ - ๊ธฐ์ค์ ๋ง๊ฒ ํ ์คํธํฉ
์ ์ํ ์์ง๋์ด๋ง ๊ธฐ๋ฒ ์ ์ฉ - ์ฑ๋ฅ ํฅ์์ ์ํด ํน์ ๋ฐฉ๋ฒ ์ฌ์ฉ
์ฌํ๊ฐ - ๋ณ๊ฒฝ ์ฌํญ์ด ์ค์ ๋ก ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ํ๋์ง ํ์ธ
์ฑ๋ฅ์ ๋ง์กฑํ ๋๊น์ง ๋ง์ง๋ง ๋ ๋จ๊ณ(4-5)๋ฅผ ๋ฐ๋ณตํฉ๋๋ค. ๊ฐ ๋ฐ๋ณต๋ง๋ค ํ๊ฐ ์ ์๊ฐ ๋์ ๋๊ฒ ํฅ์๋์ด์ผ ํฉ๋๋ค.
Setting Up Your Evaluation Pipeline
์ด ๊ณผ์ ์ ์์ฐํ๊ธฐ ์ํด ์ด๋์ ์๋ฅผ ์ํ ์ผ์ผ ์๋จ์ ์์ฑํ๋ ํ๋กฌํํธ๋ฅผ ๋ง๋๋ ์ค์ฉ์ ์ธ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ํ๋กฌํํธ๋ ์ด๋์ ์์ ํค, ์ฒด์ค, ๋ชฉํ ๋ฐ ์์ด ์ ํ์ ๊ณ ๋ คํ ๋ค์ ์ข ํฉ์ ์ธ ์๋จ์ ์์ฑํด์ผ ํฉ๋๋ค.

ํ๊ฐ ์ค์ ์ ๋ฐ์ดํฐ์
์์ฑ ๋ฐ ๋ชจ๋ธ ๋ฑ๊ธ์ ์ฒ๋ฆฌํ๋ PromptEvaluator ํด๋์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ max_concurrent_tasks ๋งค๊ฐ๋ณ์์์ ๋์์ฑ์ ์ ์ดํ ์ ์์ต๋๋ค:
evaluator = PromptEvaluator(max_concurrent_tasks=5)์๋ ์ ํ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ฎ์ ๋์์ฑ ๊ฐ(like 3)๋ถํฐ ์์ํ์ธ์. API ํ ๋น๋์ด ๋ ๋น ๋ฅธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค๋ฉด ์ด ๊ฐ์ ๋๋ฆด ์ ์์ต๋๋ค.
Generating Test Data
ํ๊ฐ ์์คํ ์ ํ๋กฌํํธ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ํ๋กฌํํธ์ ํ์ํ ์ ๋ ฅ์ ์ ์ํฉ๋๋ค:
dataset = evaluator.generate_dataset(
task_description="Write a compact, concise 1 day meal plan for a single athlete",
prompt_inputs_spec={
"height": "Athlete's height in cm",
"weight": "Athlete's weight in kg",
"goal": "Goal of the athlete",
"restrictions": "Dietary restrictions of the athlete"
},
output_file="dataset.json",
num_cases=3
)๊ฐ๋ฐ ์ค ํ ์คํธ ์ผ์ด์ค ์๋ฅผ ๋ฎ๊ฒ ์ ์ง(2~3๊ฐ)ํ์ฌ ๋ฐ๋ณต ์ฃผ๊ธฐ๋ฅผ ๋จ์ถํ์ธ์. ์ต์ข ๊ฒ์ฆ์ ์ํด ์ด๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค.
Writing Your Initial Prompt
๊ฐ๋จํ๊ณ ์์งํ ํ๋กฌํํธ๋ก ์์ํ์ฌ ๊ธฐ์ค์ ์ ์ค์ ํ์ธ์. ์๋์ ์ผ๋ก ๊ธฐ๋ณธ์ ์ธ ์ฒซ ๋ฒ์งธ ์๋์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
def run_prompt(prompt_inputs):
prompt = f"""
What should this person eat?
- Height: {prompt_inputs["height"]}
- Weight: {prompt_inputs["weight"]}
- Goal: {prompt_inputs["goal"]}
- Dietary restrictions: {prompt_inputs["restrictions"]}
"""
messages = []
add_user_message(messages, prompt)
return chat(messages)์ด ๊ธฐ๋ณธ ํ๋กฌํํธ๋ ์ข์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ๋์ง๋ง, ๊ฐ์ ์ ์ธก์ ํ ์ ์๋ ์ถ๋ฐ์ ์ ์ ๊ณตํฉ๋๋ค.
Adding Evaluation Criteria
ํ๊ฐ๋ฅผ ์คํํ ๋ ์ฑ์ ๋ชจ๋ธ์ด ๊ณ ๋ คํด์ผ ํ ์ถ๊ฐ ๊ธฐ์ค์ ์ง์ ํ ์ ์์ต๋๋ค:
results = evaluator.run_evaluation(
run_prompt_function=run_prompt,
dataset_file="dataset.json",
extra_criteria="""
The output should include:
- Daily caloric total
- Macronutrient breakdown
- Meals with exact foods, portions, and timing
"""
)์ด๋ ์ฌ์ฉ ์ฌ๋ก์ ์ค์ํ ํน์ ์๊ตฌ ์ฌํญ์ ๋ํด ํ๋กฌํํธ๋ฅผ ํ๊ฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Analyzing Results
ํ๊ฐ๋ฅผ ์คํํ๋ฉด ์ซ์ ์ ์์ ์์ธํ HTML ๋ณด๊ณ ์๋ฅผ ๋ชจ๋ ์ป์ ์ ์์ต๋๋ค. ์ด ๋ณด๊ณ ์๋ ๊ฐ ์ ์์ ๋ํ ๋ชจ๋ธ์ ์ถ๋ก ์ ํฌํจํ์ฌ ๊ฐ ํ ์คํธ ์ฌ๋ก๊ฐ ์ ํํ ์ด๋ป๊ฒ ์ํ๋์๋์ง ๋ณด์ฌ์ค๋๋ค.
์ด๊ธฐ ์ ์๊ฐ ๋ฎ๋ค๊ณ ๋๋ดํ์ง ๋ง์ธ์. ์ฒซ ๋ฒ์งธ ์๋์์๋ 10์ ๋ง์ ์ 2.3์ ์ด ์ผ๋ฐ์ ์ ๋๋ค. ์์ง๋์ด๋ง ๊ธฐ๋ฒ์ ์ ์ฉํ๋ฉด ์ผ๊ด๋ ๊ฐ์ ์ ๋ณผ ์ ์์ต๋๋ค.
์์ธํ ํ๊ฐ ๋ณด๊ณ ์๋ ํ๋กฌํํธ๊ฐ ์คํจํ๊ณ ์๋ ๋ถ๋ถ๊ณผ ๊ฐ์ ์ด ํ์ํ ๋ถ๋ถ์ ์ ํํ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด ํผ๋๋ฐฑ์ ์ฌ์ฉํ์ฌ ๋ค์ ๋ฐ๋ณต์ ์๋ดํ์ธ์.
Nest Steps
๊ธฐ์ค์ ์ด ์ค์ ๋๋ฉด ํน์ ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ๋ฒ์ ์ ์ฉํ ์ค๋น๊ฐ ๋ฉ๋๋ค. ๊ฐ ๊ธฐ๋ฒ์ ๋ฐฐ์ธ ๋๋ง๋ค ํ๊ฐ ์ ์๊ฐ ๋์ ๋๊ฒ ํฅ์๋์ด ๊ธฐ๋ณธ ํ๋กฌํํธ๊ฐ ์ ์ฐจ ์ ๋ขฐํ ์ ์๊ณ ๊ณ ์ฑ๋ฅ์ ๋๊ตฌ๋ก ์ ํ๋ ๊ฒ์ ๋๋ค.
์ ์ํ ์์ง๋์ด๋ง์ ๋ฐ๋ณต์ ์ธ ํ๋ก์ธ์ค๋ผ๋ ์ ์ ๊ธฐ์ตํ์ธ์. ํต์ฌ์ ํ ๋ฒ์ ํ๋์ฉ ๋ณ๊ฒฝํ๊ณ ์ํฅ์ ํ๊ฐํ๋ฉฐ ํจ๊ณผ๊ฐ ์๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ฒด๊ณ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ํตํด ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฐ์ฅ ํฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๊ธฐ์ ์ด ๋ฌด์์ธ์ง ์ดํดํ ์ ์์ต๋๋ค.
Being clear and direct
ํ๋กฌํํธ์ ์ฒซ ๋ฒ์งธ ์ค์ ์ ์ฒด ์์ฒญ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ค์์ ๋์ค๋ ๋ชจ๋ ๊ฒ์ ๋ฌด๋๋ฅผ ์ค์ ํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๊ทน์ ์ผ๋ก ํฅ์๋ ์ ์์ต๋๋ค.
Being Clear and Direct
์ด ์ค์ํ ์ฒซ ๋ฒ์งธ ์ค์ ๋ง๋ค ๋๋ ๋ช
ํ์ฑ(clarity)๊ณผ ์ง์ ์ฑ(directness)์ด๋ผ๋ ๋ ๊ฐ์ง ํต์ฌ ์์น์ ์ง์คํด์ผ ํฉ๋๋ค. ์ฆ, ํด๋ก๋๊ฐ ์ํ๋ ์์
์ ๋ํด ๋ชจํธํจ์ ์ฌ์ง๋ฅผ ๋จ๊ธฐ์ง ์๋ ๊ฐ๋จํ ์ธ์ด๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
Clear Communication
๋ช ํํ๋ค๋ ๊ฒ์ ์๋ฏธ
๋๊ตฌ๋ ์ดํดํ ์ ์๋ ๊ฐ๋จํ ์ธ์ด ์ฌ์ฉํ๊ธฐ
๋ค๋ถ ์ฃผ์๋ฅผ ๋์ง ์๊ณ ์ํ๋ ๊ฒ์ ์ ํํ ๋งํ
ํด๋ก๋์ ๊ณผ์ ์ ๋ํ ๊ฐ๋จํ ์ค๋ช ์ผ๋ก ๋ฆฌ๋ํ๊ธฐ
๋ชจํธํ ๋ง ๋์ ์ง์ค์ ์ธ ๋ง ์ฌ์ฉํ๊ธฐ
AS-SI: "์ฌ๋๋ค์ด ์ง๋ถ์ ํ์์ด์ ์ฌ์ฉํ๋ ๊ฒ๋ค์ ๋ํด ์์์ผ ํด์ - ํ์์ด ํจ๋์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ๋ค - ์ ๋ํด ์๊ณ ์ถ์ด์"
TO-BE: "ํ์์ด ํจ๋์ด ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํด ์ธ ๋จ๋ฝ์ ์จ๋ณด์ธ์."
Direct Instructions
"์ง์ ์ "์ด๋ผ๋ ๊ฒ์ ์์ฒญ์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ ์ค์
์ง๋ฌธ์ด ์๋ ์ง์นจ ์ฌ์ฉ
"Write", "Create" ๋๋ "Generate"๊ณผ ๊ฐ์ ์ง์ ์์ฉ ๋์ฌ๋ก ์์ํ๊ธฐ
์ง์นจ์ ์ฌ์ฉํ๊ธฐ
AS-IS: "์ฌ์ ์๋์ง์ ์ง์ด ์๋์ง์ ๋ํด ์ฝ๊ณ ์์์ด์. ์ด๋ค ๋๋ผ์์ ์ง์ด ์๋์ง๋ฅผ ์ฌ์ฉํ๋์?"
TO-BE: "์ง์ด ์๋์ง๋ฅผ ์ฌ์ฉํ๋ ์ธ ๋๋ผ๋ฅผ ์๋ณํ์ธ์. ๊ฐ๊ฐ์ ๋ํ ๋ฐ์ ํต๊ณ๋ฅผ ํฌํจํ์ธ์."
Putting It Into Practice
์ด ๊ธฐ์ ์ด ์ค์ ๋ก ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. "์ด ์ฌ๋์ ๋ฌด์์ ๋จน์ด์ผ ํ๋์?"๋ผ๊ณ ๋ฌป๋ ์ฝํ ํ๋กฌํํธ๋ถํฐ ์์ํ์ฌ ๋ช ํํ๊ณ ์ง์ ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ ๋ ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ด๋์ ์์ ์๋จ ์ ํ์ ์ถฉ์กฑํ๋ ํ๋ฃจ ์๋จ ๊ณํ์ ์๋ฆฝํ์ธ์.
์ด ๊ฐ์ ํ์ ์ฆ์ ํด๋ก๋์๊ฒ ์๋ฆฝ๋๋ค:
์ด๋ค ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋์ง (์์ฑ)
๋ฌด์์ ๋ง๋ค ๊ฒ์ธ๊ฐ (์์ฌ ๊ณํ)
์ฃผ์ ์ ์ฝ ์ฌํญ (ํ๋ฃจ ๋์ ์ด๋์ ์๊ฐ ์์ด ์ ํ์ ์ถฉ์กฑํ๋ ๊ฒฝ์ฐ)
Results Matter
์ด๋ฌํ ๊ฐ๋จํ ๋ณํ๋ ์ฑ๊ณผ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด ์์์์ ํ๊ฐ ์ ์๋ 2.32์ ์์ 3.92์ ์ผ๋ก ์์นํ๋๋ฐ, ์ด๋ ๋จ์ํ ์คํ๋ ๋ผ์ธ์ ์ฌ๊ตฌ์ฑํ ๊ฒ๋ณด๋ค ํฌ๊ฒ ๊ฐ์ ๋ ์์น์ ๋๋ค.
ํต์ฌ ์์ ์ ํด๋ก๋๊ฐ ์ํ๋ ๊ฒ์ ์ถ์ธกํด์ผ ํ๋ ์ฌ๋๋ณด๋ค๋ ๋ช
ํํ ๋ฐฉํฅ์ด ํ์ํ ์ ๋ฅํ ์กฐ์์ฒ๋ผ ๋ํ ๋ ๊ฐ์ฅ ์ ๋ฐ์ ํ๋ค๋ ๊ฒ์
๋๋ค. ์ง์ ํ๋ ๋์ฌ๋ก ๊ฐํ๊ฒ ์์ํ๊ณ ๊ณผ์ ์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช
ํ๋ฉด ๋ฐ๋ก ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
Structure with XML tags
ํด๋ก๋์ ํจ๊ป ์์ ํ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ ์ค ํ๋๋ ์ํ๋ ๊ฒ์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ๋ชจ๋ธ์ ํด์์ ๋งก๊ธฐ๋ ๋์ ํด๋ก๋๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ป์ ์ ์๋๋ก ๋ช ํํ ์ง์นจ์ด๋ ๋จ๊ณ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ์๊ฐํด ๋ณด์ธ์: ํด๋ก๋์๊ฒ "์จ๊ฒจ์ง ์ฌ๋ฅ์ ๋ฐ๊ฒฌํ ์บ๋ฆญํฐ์ ๋ํ ์งง์ ์ด์ผ๊ธฐ๋ฅผ ์จ๋ฌ๋ผ"๊ณ ์์ฒญํ๋ฉด ํด๋ก๋๋ ๋ฌด์ํ ๋ง์ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์์ต๋๋ค. ์ด์ผ๊ธฐ๋ 200๋จ์ด ๋๋ 2,000๋จ์ด๊ฐ ๋ ์ ์์ต๋๋ค. ํ ๋ช ์ ์บ๋ฆญํฐ๋ ๋ค์ฏ ๋ช ์ ์บ๋ฆญํฐ๊ฐ ๋ฑ์ฅํ ์๋ ์์ต๋๋ค. ์ด๋ค ์ ํ์ ์ฌ๋ฅ ๋ฐ๊ฒฌ ์๋๋ฆฌ์ค์๋ ์ด์ ์ ๋ง์ถ ์ ์์ต๋๋ค.

๊ตฌ์ฒด์ ์ธ ์ง์นจ์ ์ถ๊ฐํ๋ฉด ํด๋ก๋์๊ฒ ๋ ๋ช ํํ ๋ชฉํ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ถ๋ ฅ์ ์ผ๊ด์ฑ๊ณผ ํ์ง์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
Two Types of Guidelines
ํ๋กฌํํธ์์ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ๊ธฐ ์ํ ๋ ๊ฐ์ง ์ฃผ์ ์ ๊ทผ ๋ฐฉ์์ด ์์ผ๋ฉฐ, ์ ๋ฌธ๊ฐ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ฅผ ์์ฃผ ๋ณผ ์ ์์ต๋๋ค.

Output Quality Guidelines
์ฒซ ๋ฒ์งธ ์ ํ์ ์ถ๋ ฅ๋ฌผ์ด ๊ฐ์ถ์ด์ผ ํ ํ์ง์ ๋์ดํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๋ค์ ์ง์นจ์ ์ฌ์ฉ์๊ฐ ์ ์ดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์๋ต ๊ธธ์ด
๊ตฌ์กฐ ๋ฐ ํ์
ํฌํจํ ํน์ ์์ฑ ๋๋ ์์
ํค ๋๋ ์คํ์ผ ์๊ตฌ ์ฌํญ
์๋ฅผ ๋ค์ด, ์ด์ผ๊ธฐ๊ฐ 1,000๋จ์ด ์ดํ์ฌ์ผ ํ๋ค๊ณ ์ง์ ํ๊ณ , ์บ๋ฆญํฐ์ ์ฌ๋ฅ์ ๋๋ฌ๋ด๋ ๋ช ํํ ํ๋์ ํฌํจํ๋ฉฐ, ์ต์ํ ํ๋์ ์กฐ์ฐ ์บ๋ฆญํฐ๋ฅผ ํฌํจํด์ผ ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
Process Steps
๋ ๋ฒ์งธ ์ ํ์ ํด๋ก๋๊ฐ ๋ฐ๋ผ์ผ ํ ๊ตฌ์ฒด์ ์ธ ๋จ๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํด๋ก๋๊ฐ ์ต์ข
๋ต์ ๋๋ฌํ๊ธฐ ์ ์ ๋ฌธ์ ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์๊ฐํ๊ฑฐ๋ ์ฌ๋ฌ ๊ด์ ์ ๊ณ ๋ คํ ๋ ํนํ ์ ์ฉํฉ๋๋ค.
๊ธ์ ์ฐ๋ ๋์ ํด๋ก๋์๊ฒ ๋ถํํ ์๋ ์์ต๋๋ค:
๊ทน์ ์ธ ๊ธด์ฅ๊ฐ์ ์กฐ์ฑํ ์ธ ๊ฐ์ง ์ฌ๋ฅ์ ๋ธ๋ ์ธ์คํ ๋ฐํ์ธ์
๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์ธ์ฌ๋ฅผ ์ ํํ์ธ์
์ฌ๋ฅ์ ๋๋ฌ๋ด๋ ์ค์ํ ์ฅ๋ฉด์ ๊ฐ๋ต์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค
์ํฅ๋ ฅ์ ๋์ผ ์ ์๋ ์บ๋ฆญํฐ ์ ํ์ ์ง์ํ๋ ๋ธ๋ ์ธ์คํ ๋ฐ
Real-World Impact
ํน์ด์ฑ์ ์ฐจ์ด๋ ๊ทน์ ์ ๋๋ค. ์์ฌ ๊ณํ ํ๋กฌํํธ๋ฅผ ํ ์คํธํ ๋ ์ง์นจ์ ์ถ๊ฐํ๋ฉด ํ๊ฐ ์ ์๊ฐ 3.92์ ์์ 7.86์ ์ผ๋ก ํฅ์๋์ด ํด๋ก๋์๊ฒ ์ด๋ค ์์๋ฅผ ํฌํจํด์ผ ํ๋์ง ์ ํํ ์๋ ค์ฃผ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฒฐ๊ณผ์ ํ์ง์ด ๋ ๋ฐฐ ์ด์ ํฅ์๋์์ต๋๋ค.
์ง์นจ:
1. ์ ํํ ์ผ์ผ ์นผ๋ก๋ฆฌ ์ ํฌํจ
2. ๋จ๋ฐฑ์ง, ์ง๋ฐฉ ๋ฐ ํ์ํ๋ฌผ ํจ๋ ํ์
3. ๊ฐ ์์ฌ ์๊ฐ ์ง์
4. ์ ํ ์ฌํญ์ ๋ง๋ ์ํ๋ง ์ฌ์ฉ
5. ๋ชจ๋ ๋ถ๋ถ ํฌ๊ธฐ๋ฅผ ๊ทธ๋จ ๋จ์๋ก ๋์ดํฉ๋๋ค
6. ์ธ๊ธ๋ ๊ฒฝ์ฐ ์์ฐ ์นํ์ ์ผ๋ก ์ ์งWhen to Use Each Approach
๋ค์์ ๊ฐ ์ ํ์ ํน์ ์ฑ์ ์ธ์ ์ฌ์ฉํด์ผ ํ๋์ง์ ๋ํ ์ค์ฉ์ ์ธ ๊ฐ์ด๋์ ๋๋ค:
ํญ์ ์ถ๋ ฅ ์ง์นจ ์ฌ์ฉ
์์ฑํ๋ ๊ฑฐ์ ๋ชจ๋ ํ๋กฌํํธ์ ํ์ง ์ง์นจ์ ํฌํจ์์ผ์ผ ํฉ๋๋ค.
์ผ๊ด๋๊ณ ์ ์ฉํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ ์์ ๋ง์ ๋๋ค.
๋ณต์กํ ๋ฌธ์ ์ ํ๋ก์ธ์ค ๋จ๊ณ ์ฌ์ฉ ๋ค๋ฃฐ ๋ ๋จ๊ณ๋ณ ์ง์นจ์ ์ถ๊ฐํ์ธ์:
๋ณต์กํ ๋ฌธ์ ํด๊ฒฐ
์์ฌ ๊ฒฐ์ ์๋๋ฆฌ์ค
๋นํ์ ์ฌ๊ณ ๊ณผ์
ํด๋ก๋๊ฐ ์ฌ๋ฌ ๊ฐ๋๋ฅผ ๊ณ ๋ คํ๊ธฐ๋ฅผ ์ํ๋ ๋ชจ๋ ์ํฉ

์๋ฅผ ๋ค์ด, ํด๋ก๋์๊ฒ ์์ ํ์ ์ฑ๊ณผ๊ฐ ํ๋ฝํ ์ด์ ๋ฅผ ๋ถ์ํด ๋ฌ๋ผ๊ณ ์์ฒญํ๋ ๊ฒฝ์ฐ, ์์ ํ์ด ํ๋์ ์ ์ฌ์ ์์ธ์๋ง ์ง์คํ๊ธฐ๋ณด๋ค๋ ์์ฅ ์งํ, ์ ๊ณ ๋ณํ, ๊ฐ์ธ ์ฑ๊ณผ, ์กฐ์ง ๋ณํ, ๊ณ ๊ฐ ํผ๋๋ฐฑ์ ๊ฒํ ํ๋๋ก ์๋ดํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Combining Both Approaches
์ ๋ฌธ์ ์ธ ํ๋กฌํํธ์์๋ ๋ ๊ฐ์ง ๊ธฐ๋ฒ์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ถ๋ ฅ ํ์๊ณผ ๋ด์ฉ์ ์ ์ดํ๋ ๊ฐ์ด๋๋ผ์ธ๊ณผ ํด๋ก๋๊ฐ ์๋ตํ๊ธฐ ์ ์ ๋ฌธ์ ๋ฅผ ์ฒ ์ ํ ์๊ฐํ ์ ์๋๋ก ํ๋ ๋จ๊ณ๊ฐ ์์ ์ ์์ต๋๋ค.
์ด ์กฐํฉ์ ๊ฒฐ๊ณผ์ ์ผ๊ด์ฑ๊ณผ ํด๋ก๋๊ฐ ๊ฒฐ๋ก ์ ๋๋ฌํ๋ ๋ฐ ์ค์ํ ๋ชจ๋ ์์๋ฅผ ๊ณ ๋ คํ๋ค๋ ์์ ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
Structure with XML tags
๋ง์ ์ฝํ ์ธ ๊ฐ ํฌํจ๋ ํ๋กฌํํธ๋ฅผ ๋ง๋ค ๋ ํด๋ก๋๋ ๋๋๋ก ์ด๋ค ํ ์คํธ ์กฐ๊ฐ์ด ์๋ก ์ํ๋์ง ๋๋ ์ด๋ค ์น์ ์ ๋ํ๋ด์ผ ํ๋์ง ์ดํดํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค. XML ํ๊ทธ๋ ํนํ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ฐํ ๋ ํ๋กฌํํธ์ ๊ตฌ์กฐ์ ๋ช ํ์ฑ์ ์ถ๊ฐํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
Why Structure Matters
20ํ์ด์ง์ ๋ฌํ๋ ํ๋งค ๊ธฐ๋ก์ ๋ถ์ํด์ผ ํ๋ ํ๋กฌํํธ๋ฅผ ๊ณ ๋ คํด ๋ณด์ธ์. ๋ช ํํ ๊ฒฝ๊ณ๊ฐ ์์ผ๋ฉด ํด๋ก๋๋ ์ฌ์ฉ์์ ์ง์นจ๊ณผ ๋ถ์ํ๊ณ ์ ํ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค.

์์ ์๋ ๊ฒฝ๊ณ๊ฐ ๋ถ๋ถ๋ช
ํ๋ฉด ํด๋ก๋๊ฐ ์๋๋ฅผ ๋ถ์ํ๊ธฐ๊ฐ ์ผ๋ง๋ ์ด๋ ค์ธ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค. ํ๋งค ๊ธฐ๋ก์ <sales_records> ๋ฐ </sales_records>์ ๊ฐ์ XML ํ๊ทธ๋ก ๊ฐ์ธ๋ฉด ํด๋ก๋๊ฐ ํ๋กฌํํธ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๋ ๋ช
ํํ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.

Practical Example
XML ํ๊ทธ๊ฐ ์ค์ํ ์ด์ ์ ๋ํ ๋ ๊ทน์ ์ธ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ํด๋ก๋์๊ฒ ์ ๊ณต๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋๋ฒ๊น ํ๋๋ก ์์ฒญํ๋ฉด ๋ชจ๋ ๊ฒ์ ํจ๊ป ์์ผ๋ฉด ํผ๋์ด ์๊น๋๋ค:

"Not Great" ๋ฒ์ ์ ์ฝ๋์ ๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. "Better" ๋ฒ์ ์ ๋ช
ํํ ๊ฒฝ๊ณ๋ฅผ ๋ง๋ค๊ธฐ ์ํด <my_code>์ <docs> ํ๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Custom Tag Names
๊ณต์ XML ํ๊ทธ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. ์ฝํ ์ธ ์ ๋ง๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ๋ง๋์ธ์:
<sales_records>๊ฐ<data>๋ณด๋ค ๋ซ์ต๋๋ค<athlete_information>์ ์ฌ์ฉ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ช ํํ๊ฒ ์๋ณํฉ๋๋ค<my_code>์<docs>๋ ์๋ก ๋ค๋ฅธ ์ ํ์ ์ฝํ ์ธ ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค
ํ๊ทธ ์ด๋ฆ์ด ๋ ๊ตฌ์ฒด์ ์ด๊ณ ์ค๋ช ์ ์ผ์๋ก ํด๋ก๋๋ ๊ฐ ์น์ ์ ๋ชฉ์ ์ ๋ ์ ์ดํดํ ์ ์์ต๋๋ค.
When to Use XML Tags
XML ํ๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค:
๋๋์ ์ปจํ ์คํธ ๋๋ ๋ฐ์ดํฐ ํฌํจ
๋ค์ํ ์ ํ์ ์ฝํ ์ธ (์ฝ๋, ๋ฌธ์, ๋ฐ์ดํฐ) ํผํฉ
์ฝํ ์ธ ๊ฒฝ๊ณ์ ๋ํด ๋ ๋ช ํํ๊ฒ ์ค๋ช ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
์ฌ๋ฌ ๋ณ์๋ฅผ ๋ณด๊ฐํ๋ ๋ณต์กํ ํ๋กฌํํธ ์์
์งง์ ๋ด์ฉ์ด๋ผ๋ XML ํ๊ทธ๋ ํด๋ก๋์๊ฒ ํ๋กฌํํธ ๊ตฌ์กฐ๋ฅผ ๋ ๋ช ํํ๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ตฌ๋ถ์ ์ญํ ์ ํ ์ ์์ต๋๋ค.
Real-World Application
์ค์ ๋ก ๋ค์๊ณผ ๊ฐ์ ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค:
<athlete_information>
- Height: 6'2"
- Weight: 180 lbs
- Goal: Build muscle
- Dietary restrictions: Vegetarian
</athlete_information>
Generate a meal plan based on the athlete information above.์ด๋ ์๋จ์ ์์ฑํ ๋ ํค, ๋ชธ๋ฌด๊ฒ, ๋ชฉํ ๋ฐ ์ ํ ์ฌํญ์ด ๋ชจ๋ ๊ด๋ จ๋ ์ด๋์ ์ ๋ฐ์ดํฐ์์ ๋ถ๋ช ํ ํฉ๋๋ค.
๊ฐ๋จํ ํ๋กฌํํธ๋ง์ผ๋ก๋ ๊ทน์ ์ธ ๊ฐ์ ์ ๋ณด์ง ๋ชปํ ์๋ ์์ง๋ง, ํ๋กฌํํธ๊ฐ ์ ์ ๋ ๋ณต์กํด์ง๊ณ ๋ค์ํ ์ฝํ ์ธ ๊ฐ ๋ ๋ง์ด ํฌํจ๋ ์๋ก XML ํ๊ทธ์ ๊ฐ์น๋ ์ ์ ๋ ๋์์ง๋๋ค.
Providing examples
ํ๋กฌํํธ์ ์์ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ๋ฒ ์ค ํ๋์ ๋๋ค. '์์ท' ๋๋ '๋ฉํฐ์ท' ํ๋กฌํํธ๋ผ๊ณ ํ๋ ์ด ์ ๊ทผ ๋ฐฉ์์ ํด๋ก๋์๊ฒ ์ํ ์ ๋ ฅ/์ถ๋ ฅ ์์ ์ ๊ณตํ์ฌ ์๋ต์ ์๋ดํ๋ ๊ฒ์ ๋๋ค.
How Examples Work
๊ฐ์ ๋ถ์ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํด๋ก๋๊ฐ ํธ์์ด ๊ธ์ ์ ์ธ์ง ๋ถ์ ์ ์ธ์ง ๋ถ๋ฅํ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค:

์ฌ๊ธฐ์ ๋์ ๊ณผ์ ๋ ํ์์ ๋๋ค. "๋ค, ๋ฌผ๋ก ์ด์ฃ . '์ฐ์ฃผ์์ ์จ ํ๋ 9' ์ดํ ์ ๊ฐ ๋ณธ ์ํ ์ค ์ต๊ณ ์์ด์."์ ๊ฐ์ ํธ์์ ๊ฒ์ผ๋ก๋ ๊ธ์ ์ ์ผ๋ก ๋ณด์ด์ง๋ง, ์ฌ์ค์ ๋น๊ผฌ๊ณ ๋ถ์ ์ ์ ๋๋ค (ํ๋ 9๋ ์ต์ ์ ์ํ ์ค ํ๋๋ก ์ ๋ช ํฉ๋๋ค).
Adding Examples to Handle Corner Cases
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํด๋ก๋๊ฐ ๊น๋ค๋ก์ด ์ฌ๊ฑด์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์์ ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค:

๊ฐ์ ๋ ํ๋กฌํํธ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
๋ช ํํ ๊ธ์ ์ ์ธ ์: "์ค๋ ๋ฐค ์ข์ ๊ฒฝ๊ธฐ!" โ "๊ธ์ ์ "
๋น๊ผฌ๋ ์์ ๋๋ค: "์, ๋ค, ์ค๋ ๋ฐค ๋นํ๊ธฐ ์ง์ฐ์ด ์ ๋ง ํ์ํ์ด์! ํ๋ฅญํด์!" โ "๋ถ์ ์ ์ ๋๋ค"
ํ์๋ฅผ ์ ์คํ๊ฒ ๋ค๋ค์ผ ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๋ ๋งฅ๋ฝ
์์ ๊ฐ <sample_input> ๋ฐ <ideal_output>๊ณผ ๊ฐ์ XML ํ๊ทธ๋ก ์ด๋ป๊ฒ ๊ฐ์ธ์ง๋์ง ์ฃผ๋ชฉํ์ธ์. ์ด ๊ตฌ์กฐ๋ ํด๋ก๋๊ฐ ๊ฐ ๋ถ๋ถ์ด ๋ฌด์์ ๋ํ๋ด๋์ง ๋ช
ํํ๊ฒ ๋ณด์ฌ์ค๋๋ค.
When to Use Examples
์์ ๋ ํนํ ์ ์ฉํฉ๋๋ค:
์ฝ๋ ์ผ์ด์ค ๋๋ ์ฃ์ง ์๋๋ฆฌ์ค ์บก์ฒ
๋ณต์กํ ์ถ๋ ฅ ํ์ ์ ์(์: ํน์ JSON ๊ตฌ์กฐ)
์ํ๋ ์คํ์ผ์ด๋ ํค์ ์ ํํ๊ฒ ๋ณด์ฌ์ฃผ๊ธฐ
๋ชจํธํ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ ์์ฐ
One-Shot vs Multi-Shot
One-Shot: ํจํด์ ์ค์ ํ๊ธฐ ์ํ ๋จ์ผ ์์ ์ ๊ณต
Multi-Shot: ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃฐ ์ ์๋ ์ฌ๋ฌ ์์ ์ ๊ณต
๋ค์ํ ์ฃ์ง ์ผ์ด์ค๋ฅผ ๋ค๋ฃจ๊ฑฐ๋ ๋ค์ํ ์ ํ์ ์ ํจํ ์๋ต์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋๋ ๋ฉํฐ์ท์ ์ฌ์ฉํ์ธ์.
์์ฝ
Last updated