LangChain | 출력 파서 [Output Parser] | 출력 파서

박성문·2025년 1월 6일

출력파서란

AI 모델의 응답을 우리가 원하는 특정 형식이나 구조로 변환해주는 도구이다

출력 파서 형식별 예시

StrOutputParser : 가장 기본적인 형태, 단순 문자열 출력   
CommaSeparatedListOutputParser : 쉼표로 구분된 항목들을 리스트로 변환
JsonOutputParser : Json 형식의 응답을 파이썬 객체로 변환

파서 클래스와 인스턴스 변수명

  • StrOutputParser, JsonOutputParser, CommaSeparatedListOutputParser는 클래스 이름으로 변경 불가
  • my_str_parser, movie_parser, comma_parser 등은 인스턴스 변수명으로 원하는 대로 지정 가능

출력 파서 이해하기

음식점에서의 상황을 예시로 들면

파서가 없는 경우 :

  1. 손님이 카운터에가서 직원에게 직접 메뉴를 주문한다.
  2. 직원이 손님의 말을 듣고 메뉴를 포스기에 입력한다.
  3. 포스기에 입력한 메뉴를 주문표로 출력해서 주방에 전달한다.
  4. 주방에서 주문표를 보고 메뉴를 만든다.
  5. 포스기에 찍힌 금액대로 결제한다. (착오 가능성 있음)

파서가 있는 경우 :

  1. 손님이 테이블오더로 자리에서 바로 메뉴를 주문한다.
  2. 주문한 메뉴는 주방에 필요한 형식의 주문표로 변환되어 출력 (짬뽕2, 짜장1, 탕수육(소)),
    가게 포스기에도 필요한 형식으로 저장된다. ([5번 테이블], [짬뽕 2 13,000][짜장 1 6,000] [탕수육(소) 13,000])
  3. 테이블 번호만 헷갈리지 않으면 메뉴가 누락되거나 덤탱이 쓸 일이 없다. (선불 테이블오더의 경우 착오 가능성 1도 없음)

출력 파서 종류별 특징

StrOutputParser (기본 문자열 파서)

테이블오더로 주문 → 주방에 " 아메리카노 2잔, 라떼 1잔"이라고만 출력
가장 기본적인 형태의 주문 전달

JsonOutputParser (구조화된 데이터 파서)

테이블오더 주문 → 주방/포스/결제시스템에 모두 정확한 정보 전달

CommaSeparatedListOutputParser (리스트 파서)

바리스타의 작업 순서 리스트 생성
재료 소진 확인을 위한 체크리스트
음료 제조 완료 체크리스트
재고 관리 시스템 연동

체인에서 사용 예시

  • 클래스 이름 (StrOutputParser)은 제품의 모델명과 같아서 변경 불가
  • 인스턴스 변수명 (my_str_parser)은 제품의 애칭과 같아서 자유롭게 지정 가능

출력 파서의 필요성과 차이점

파서 없이 사용할 때

파서를 사용할 때

  1. 데이터 형식 변환
  • AI 모델의 원시 출력을 프로그래밍에 사용하기 좋은 형태로 변환
  • 문자열 → 리스트, JSON, 객체 등으로 자동 변환
  1. 일관성 보장

  2. 데이터 검증

  3. 후처리 용이성

출력파서는

  • AI 모델의 출력을 프로그래밍적으로 다루기 쉽게 만들어준다
  • 데이터 형식을 일관되게 유지
  • 자동 검증 기능 제공
  • 후처리 작업을 단순화

마치 테이블오더 시스템이

  • 손님의 주문을 자동으로 이해하고
  • 필요한 곳 (주방/포스기/결제)에 알맞은 형식으로 전달하고
  • 직원의 수작업 없이도 정확하게 처리되는 것처럼

출력 파서도 AI의 응답을

  • 자동으로 이해하고
  • 프로그램이 필요로 하는 형식으로 변환하여
  • 추가 처리 없이 바로 사용할 수 있게 해주는 것

시스템 간 데이터 흐름

profile
성문이

0개의 댓글