프롬프트 엔지니어링으로 GPT-4 응답 품질 개선하기
문제 상황
사내 고객 지원 챗봇에 GPT-4 API를 연동했는데, 같은 질문에도 응답 형식이 들쭉날쭉했다. 때로는 JSON으로, 때로는 일반 텍스트로 답변이 왔고, 필요한 정보가 누락되는 경우도 있었다.
프롬프트 구조화
가장 효과적이었던 건 시스템 프롬프트를 명확히 구조화한 것이다.
const systemPrompt = `당신은 고객 지원 전문가입니다.
## 역할
- 제품 관련 질문에 정확히 답변
- 기술 용어는 쉽게 풀어서 설명
## 응답 형식
{
"answer": "답변 내용",
"confidence": "high|medium|low",
"category": "기술|결제|배송"
}
## 제약사항
- 확실하지 않으면 confidence를 낮춤
- 200자 이내로 답변`;
Few-shot Learning 적용
예시를 2-3개 제공하니 일관성이 크게 향상됐다.
const messages = [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: '환불은 언제 되나요?' },
{ role: 'assistant', content: JSON.stringify({
answer: '결제 수단에 따라 3-5 영업일 소요됩니다.',
confidence: 'high',
category: '결제'
})},
{ role: 'user', content: userQuestion }
];
Temperature 조정
창의성이 필요 없는 업무용 챗봇이라 temperature를 0.3으로 낮췄다. 응답의 일관성이 눈에 띄게 개선됐다.
const response = await openai.chat.completions.create({
model: 'gpt-4',
messages,
temperature: 0.3,
max_tokens: 300
});
결과
- 응답 형식 일관성: 95% 이상
- JSON 파싱 에러: 거의 제로
- 고객 만족도: 이전 대비 30% 상승
프롬프트 엔지니어링은 생각보다 엔지니어링에 가까웠다. 명확한 스펙 정의, 예시 제공, 파라미터 튜닝이 핵심이었다.