피드로 돌아가기
Reliable LLM JSON Output: Few-Shot Prompting & Robust Parsing
Dev.toDev.to
AI/ML

Few-shot prompting 도입으로 LLM JSON 출력 일관성 크게 개선함

Reliable LLM JSON Output: Few-Shot Prompting & Robust Parsing

Manas Joshi2026년 4월 2일9intermediate

Context

LLM은 기본적으로 인간다운 자유 텍스트 생성을 위해 설계되어 있어 JSON 같은 구조화된 출력 요청 시 대화적 텍스트가 포함되거나 형태가 깨지는 문제가 발생함. 텍스트 지시만으로는 모델 변형이나 예상치 못한 출력에 쉽게 망가지는 불안정한 통합이 이루어짐.

Technical Solution

  • Few-shot Prompting: 실제 작업 전에 입력-출력 예시 쌍을 messages 배열에 포함하여 모델이 원하는 포맷을 암묵적으로 학습하도록 함
  • System Message 활용: 순수 JSON만 반환하도록 명확한 지시를 system 프롬프트에 포함함
  • JSON Parser + Schema Validation: try-except로 malformed JSON을 안전하게 처리하고 parsed 데이터를 기대하는 스키마와 대조하여 검증함
  • 예시 형식 일관성: few-shot 예시의 spacing, key names, data types가 정확한 출력 포맷과 완벽히 일치하도록 관리함

Impact

Few-shot 예시 적용 후 대화적 텍스트가 제거되고 깔끔한 JSON만 반환되어 프로그램적 파싱이 훨씬 안정적으로 이루어짐.

Key Takeaway

신뢰할 수 있는 LLM JSON 출력은 마법이 아니라 세심한 prompt engineering과 애플리케이션 단 robust parsing의 결합으로 달성함.


LLM 기반 정보 추출 기능 개발 시 1~2개의 few-shot 예시를 messages 배열에 포함하고 system message에 'only JSON' 지시를 추가할 것. 파싱 로직은 반드시 try-except로 감싸며 Pydantic class로 스키마 검증을 적용해야 malformed 출력으로부터 안전하게 보호할 수 있음.

원문 읽기