프롬프트 엔지니어링으로 GPT-4 API 응답 품질 개선하기
문제 상황
사내 위키 문서를 자동 요약하는 기능을 구현하게 되었다. GPT-4 API를 사용했지만 초기에는 응답이 들쭉날쭉했다. 같은 문서를 요약해도 어떤 때는 3줄, 어떤 때는 10줄로 나왔고, 핵심을 놓치는 경우도 많았다.
프롬프트 개선 과정
1. 역할과 제약 명시
const systemPrompt = `당신은 기술 문서 요약 전문가입니다.
- 3~5개의 bullet point로 요약
- 각 항목은 한 문장으로 제한
- 코드나 명령어는 백틱으로 감싸기`;
단순히 "요약해줘"보다 구체적인 제약을 주니 일관성이 높아졌다.
2. Few-shot 예시 추가
const fewShotExamples = [
{
input: "Redis 캐싱 전략 문서...",
output: "- `Redis`를 이용한 3단계 캐싱 구조 설명\n- TTL 설정은 데이터 특성에 따라 1시간~24시간\n- 캐시 미스 시 DB 조회 후 재적재"
}
];
OpenAI 문서에서 권장하는 Few-shot learning을 적용했다. 2~3개 예시만으로도 출력 형식이 안정화되었다.
3. 온도 조정
const response = await openai.chat.completions.create({
model: 'gpt-4',
temperature: 0.3, // 기본 1.0에서 낮춤
messages: [...]
});
창의성보다 일관성이 중요한 작업이라 temperature를 낮췄다. 0.3 정도가 적당했다.
결과
- 응답 길이 편차: ±50% → ±10%
- 핵심 누락률: 30% → 5% 이하
- 사용자 만족도 상승
프롬프트 엔지니어링이 단순히 "잘 물어보기"가 아니라 명확한 제약, 예시, 파라미터 튜닝의 조합임을 실감했다. GPT-4의 능력을 제대로 활용하려면 프롬프트 설계에 충분한 시간을 투자해야 한다.