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

문제 상황

사내 고객 문의 챗봇에 GPT-4 API를 도입했는데, 같은 질문에도 응답 형식이 들쑥날쑥했다. 특히 제품 정보를 안내할 때 때로는 마크다운 리스트로, 때로는 일반 텍스트로 답변하는 등 일관성이 없어 UX가 좋지 않았다.

시도한 방법들

1. System Message 정교화

초기에는 간단한 system message만 사용했다.

const systemMessage = {
  role: 'system',
  content: '당신은 친절한 고객 상담원입니다.'
};

이를 구체적인 지침으로 바꿨다.

const systemMessage = {
  role: 'system',
  content: `당신은 전문 고객 상담원입니다.

응답 규칙:
- 제품 정보는 반드시 번호 리스트 형식으로 작성
- 가격 정보는 "₩" 기호와 함께 천 단위 쉼표 사용
- 응답은 3문장 이내로 간결하게
- 확실하지 않은 정보는 "확인 후 안내드리겠습니다" 응답`
};

2. Few-shot Examples 추가

구조화된 예시를 프롬프트에 포함시켜 응답 형식을 학습시켰다.

const fewShotExamples = [
  {
    role: 'user',
    content: '노트북 A의 스펙이 궁금합니다.'
  },
  {
    role: 'assistant',
    content: `노트북 A의 주요 스펙입니다:

1. CPU: Intel i7-13세대
2. RAM: 16GB DDR5
3. 저장공간: 512GB NVMe SSD
4. 가격: ₩1,299,000`
  }
];

3. Temperature 조정

temperature를 0.7에서 0.3으로 낮춰 응답의 창의성보다 일관성을 우선했다.

const completion = await openai.chat.completions.create({
  model: 'gpt-4',
  messages: [systemMessage, ...fewShotExamples, userMessage],
  temperature: 0.3,
  max_tokens: 500
});

결과

프롬프트 엔지니어링 적용 후 응답 형식 일관성이 약 85%에서 95% 이상으로 개선됐다. 특히 few-shot examples가 가장 효과적이었고, system message만으로는 한계가 있었다.

API 비용 측면에서도 max_tokens 제한으로 불필요하게 긴 응답이 줄어 토큰 사용량이 약 30% 감소했다.

교훈

LLM API는 단순히 연결하는 것보다 프롬프트 설계가 더 중요하다. 특히 프로덕션 환경에서는 응답의 일관성과 예측 가능성이 핵심이므로, few-shot learning과 명확한 제약 조건 설정이 필수다.

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