⚡ 중급2026-09-086분
예시 3개로 AI 말투를 내 것으로 만드는 Few-Shot 패턴
Few-Shot 프롬프팅은 원하는 출력 형식·톤·논리를 예시로 직접 보여주는 기법입니다. 규칙을 길게 설명하는 것보다 짧은 예시 2~3개가 훨씬 강력하게 동작합니다.
few-shotprompt-engineeringclassification
왜 Few-Shot인가?
system 프롬프트에 규칙을 아무리 상세하게 써도 모델이 의도한 형식을 벗어날 때가 있습니다. Few-Shot은 "이렇게 해줘"가 아니라 "이렇게 했어"를 직접 보여주는 방식이라 재현율이 크게 높아집니다.
언제 쓰면 좋은가?
| 상황 | 이유 | |---|---| | 출력 포맷이 고정되어 있을 때 | JSON·표·마크다운 등 구조를 강제 | | 도메인 특유 말투가 필요할 때 | 법률, 의료, 사내 문체 등 | | 분류/라벨링 작업 | 레이블 기준을 예시로 전달 | | 규칙 서술이 모호해질 때 | 예시가 규칙보다 명확 |
실전 코드 — 고객 리뷰 감성 분류기
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const FEW_SHOT_EXAMPLES = [
{
role: "user" as const,
content: "리뷰: 배송이 너무 느렸어요. 다음엔 다른 곳 이용할게요.",
},
{
role: "assistant" as const,
content: JSON.stringify({ sentiment: "negative", confidence: 0.92, reason: "배송 불만" }),
},
{
role: "user" as const,
content: "리뷰: 가격 대비 품질이 괜찮네요. 재구매 의향 있어요.",
},
{
role: "assistant" as const,
content: JSON.stringify({ sentiment: "positive", confidence: 0.88, reason: "가성비 만족" }),
},
{
role: "user" as const,
content: "리뷰: 그냥 보통이에요. 특별히 좋거나 나쁘진 않아요.",
},
{
role: "assistant" as const,
content: JSON.stringify({ sentiment: "neutral", confidence: 0.79, reason: "중립적 평가" }),
},
];
async function classifyReview(review: string) {
const response = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 256,
system:
"당신은 리뷰 감성 분류 전문가입니다. " +
"반드시 JSON 형식으로만 응답하세요: " +
'{ sentiment: "positive"|"negative"|"neutral", confidence: 0~1, reason: string }',
messages: [
...FEW_SHOT_EXAMPLES,
{ role: "user", content: `리뷰: ${review}` },
],
});
const raw = response.content[0].type === "text" ? response.content[0].text : "";
try {
return JSON.parse(raw);
} catch {
throw new Error(`JSON 파싱 실패: ${raw}`);
}
}
// 실행 예시
const result = await classifyReview("포장은 예쁜데 제품이 기대 이하였어요.");
console.log(result);
// { sentiment: 'negative', confidence: 0.81, reason: '제품 품질 실망' }
Few-Shot 품질을 높이는 체크리스트
- [ ] 예시는 2~5개가 적당 — 너무 많으면 토큰 낭비, 1개는 패턴 학습 불충분
- [ ] 각 예시가 다른 케이스를 커버하는지 확인 (긍정·부정·중립처럼)
- [ ] 예시의 출력 형식이 100% 일관된지 검토 (따옴표, 필드명 등)
- [ ] 실제 운영 데이터에서 엣지 케이스를 예시로 포함했는지 확인
- [ ] 예시가 늘어날수록 입력 토큰 비용을 모니터링할 것
- [ ] Haiku로 먼저 검증 후 필요 시 Sonnet으로 업그레이드