프롬프트 엔지니어링으로 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% 상승

프롬프트 엔지니어링은 생각보다 엔지니어링에 가까웠다. 명확한 스펙 정의, 예시 제공, 파라미터 튜닝이 핵심이었다.

프롬프트 엔지니어링으로 GPT-4 응답 품질 개선하기