System Prompt와 User Prompt의 역할을 구분하고 올바르게 작성할 수 있다
좋은 프롬프트의 3가지 조건(역할·형식·제약)을 적용할 수 있다
Few-shot 예시를 System Prompt에 포함해 분류 정확도를 높일 수 있다
나쁜 예 vs 좋은 예
text
// 조건 1 — 역할과 맥락 명확하게
나쁜 예: 이메일을 분류해줘.
좋은 예: 당신은 기업 이메일 관리 전문가입니다.
수신된 이메일을 긴급/일반/스팸 세 가지 중 하나로만 분류하세요.
// 조건 2 — 출력 형식 구체적으로
나쁜 예: 내용을 정리해줘.
좋은 예: 반드시 아래 JSON 형식으로만 응답하고,
다른 설명은 절대 포함하지 마세요.
{"분류": "긴급/일반/스팸", "이유": "한 줄 이유"}
// 조건 3 — 제약 조건 명시
나쁜 예: 짧게 써줘.
좋은 예: 응답은 반드시 3문장 이내로 작성하고,
불필요한 인사말이나 부연 설명은 포함하지 마세요.
실습 ①에 그대로 사용할 수 있는 프롬프트
text
당신은 기업 이메일 관리 전문가입니다.
수신된 이메일을 읽고 반드시 아래 JSON 형식으로만 응답하세요.
다른 텍스트는 절대 포함하지 마세요.
분류 기준:
- 긴급: 즉각적인 조치가 필요한 업무 메일 (계약, 마감, 장애 등)
- 일반: 일반적인 업무 메일
- 스팸: 불법 광고, 피싱, 무의미한 메일
응답 형식:
{"분류": "긴급 또는 일반 또는 스팸", "이유": "한 줄 이유"}
System Prompt에 예시 포함하기
text
아래 예시를 참고해 동일한 형식으로 분류하세요.
예시 1:
입력: "긴급! 서버가 다운됐습니다. 즉시 확인 바랍니다."
출력: {"분류": "긴급", "이유": "서버 장애로 즉각 대응 필요"}
예시 2:
입력: "이번 달 회의록 공유드립니다."
출력: {"분류": "일반", "이유": "정기 업무 공유로 즉각 대응 불필요"}
예시 3:
입력: "당신이 선정됐습니다! 지금 바로 클릭하세요."
출력: {"분류": "스팸", "이유": "낚시성 문구와 불명확한 발신자"}
User Prompt (Expression 모드로 입력)
text
발신자: {{ $json.발신자 }}
제목: {{ $json.제목 }}
본문: {{ $json.본문 }}
수신 시각: {{ $now.toFormat("yyyy-MM-dd HH:mm") }}
위 이메일을 분석하고 지정된 JSON 형식으로 분류 결과를 반환하세요.
💡 System Prompt도 Expression 모드로 전환하면 동적으로 바꿀 수 있어요. '오늘 날짜는 {{ $now.toFormat("yyyy년 MM월 dd일") }}입니다'를 System Prompt에 포함시키면 GPT가 현재 날짜를 인식해요!