3장 · 프롬프트 설계왜 프롬프트 설계가 필요한가 — 답은 하는데, 우리 상담원이 아니다시스템 프롬프트 — 역할과 규칙을 미리 알려 준다temperature와 출력 제어 — 같은 질문에 왜 답이 다른가few-shot과 단계적 추론 — 예시로 가르치고, 과정을 적게 한다따라하기 — 프롬프트 다섯 가지 비교정리와 체크리스트실습문제와 해답
3장. 프롬프트 설계
정리와 체크리스트
3장에서 배운 것
- 프롬프트 — 모델에게 보내는 글 전체. 모델의 행동을 바꾸는 유일한 수단입니다.
- 시스템 프롬프트 — 역할·원칙·금지·형식을 미리 알려 줍니다.
system_instruction으로 넣습니다. - Gemini 3 계열에서는 temperature 기본값(1.0)을 사용합니다. 온도만으로 결과의 일관성을 보장할 수 없으므로 출력 형식과 규칙을 명시하고 실제 응답을 확인합니다.
- max_output_tokens — 답을 짧게 쓰게 하는 것이 아니라 잘라 내는 안전장치입니다.
- few-shot — 예시로 형식을 가르칩니다.
- 단계적 추론(CoT) — 조건을 빠짐없이 적고 과정을 먼저 쓰게 하여 계산과 판단을 정확하게 합니다.
한눈에 보는 핵심
config=types.GenerateContentConfig(
system_instruction=HARU_SYSTEM_V1, # 누구이고, 어떻게 답하는가
temperature=1.0, # 얼마나 흔들리는가 (Gemini 3 계열 권장 기본값)
max_output_tokens=2048, # 어디서 자르는가
)
| 프롬프트로 고칠 수 있는 것 | 프롬프트로 고칠 수 없는 것 |
|---|---|
| 소속, 말투, 길이, 형식 | 모르는 사실 (주문 상태, 재고, 우리 회사 규정) |
| 답의 순서와 구성 | 글자까지 같은 답 |
| 조건이 다 적힌 계산의 풀이 | 문제에 적어 주지 않은 규정 |
체크리스트
- [ ] 시스템 프롬프트와 사용자 메시지의 차이를 설명할 수 있다.
- [ ] 시스템 프롬프트의 네 덩어리(역할·원칙·금지·형식)를 말할 수 있다.
- [ ] "친절하게 답하라"가 좋은 규칙이 아닌 이유를 설명할 수 있다.
- [ ] temperature가 무엇을 조절하는 값인지 설명할 수 있다.
- [ ] 우리가 쓰는 모델에서는 temperature가 답을 바꾸지 않음을 실행 결과로 확인했다.
- [ ] 답의 일관성을 온도가 아니라 무엇으로 확보하는지 말할 수 있다.
- [ ]
max_output_tokens에 걸렸을 때finish_reason이 무엇으로 나오는지 안다. - [ ] few-shot 예시를 고를 때 주의할 점을 두 가지 말할 수 있다.
- [ ] 단계적 추론 문제에 조건을 빠짐없이 적어야 하는 이유를 설명할 수 있다.
한 줄 핵심
프롬프트는 모델이 "어떻게 말할지"를 정합니다. "무엇이 사실인지"는 정해 주지 못합니다.