프롬프트 체이닝으로 복잡한 문서 분석 자동화하기

문제 상황

고객사 요구사항 문서를 분석해서 기능 명세서를 자동 생성하는 작업이 필요했다. 처음엔 하나의 긴 프롬프트로 "문서를 읽고 요약하고 구조화하고 명세서를 작성해라"는 식으로 접근했는데, 결과물이 불안정했다. 특히 문서가 길어질수록 중간 내용을 누락하거나 잘못 해석하는 경우가 잦았다.

프롬프트 체이닝 적용

작업을 여러 단계로 분리했다.

# Step 1: 문서 구조 파악
structure_prompt = f"""
다음 문서의 주요 섹션과 구조를 분석해라.
- 각 섹션의 제목과 목적
- 섹션 간 관계

{document}
"""

# Step 2: 핵심 요구사항 추출
requirements_prompt = f"""
이전 분석 결과:
{structure_result}

원문:
{document}

각 섹션에서 기능적 요구사항만 추출해라.
"""

# Step 3: 명세서 작성
spec_prompt = f"""
추출된 요구사항:
{requirements}

이를 기반으로 개발 명세서를 작성해라.
- 기능별로 구분
- 우선순위 표시
- 기술적 제약사항 명시
"""

결과

단일 프롬프트 대비 정확도가 체감상 40% 이상 향상됐다. 각 단계의 출력을 검증하고 필요시 재시도할 수 있어서 안정성도 좋아졌다. 중간 결과를 로깅해두니 디버깅도 훨씬 수월했다.

추가로 각 단계에 temperature를 다르게 설정했다. 구조 파악은 0.3으로 보수적으로, 명세서 작성은 0.7로 약간의 창의성을 허용했더니 더 나은 결과가 나왔다.

트레이드오프

당연히 API 호출 횟수가 늘어나고 처리 시간도 길어진다. 하지만 재작업 비용을 생각하면 충분히 합리적인 선택이었다. 특히 배치 작업으로 돌릴 때는 시간보다 정확도가 더 중요했다.