LangChain | CommaSeparatedListOutputParser | 출력 파서

박성문·2025년 1월 19일

CommaSeparatedListOutputParser란

쉼표로 구분된 항목 목록을 반환할 필요가 있을 때 유용하다.
사용자가 입력한 데이터나 요청한 정보를 쉼표로 구분하여 
명확하고 간결한 목록 형태로 제공받을 수 있다.
여러 개의 데이터 포인트, 이름, 항목 또는 다룬 종류의 값들을 나열할 때 
이를 통해 효과적으로 정보를 정리하고 사용자에게 전달할 수 있다.

기본 구조

기본 구조는 다른 출력파서들과 같다.
하지만 프롬프트 템플릿 설정에서 필수적으로 고려해야할 문법적 요소가 있다.

또한 다른 파서로 쉽게 전환하는 예시를 보면
파서 초기화와 지침 가져오기는 공통된 구조를 가지고 있고
단순히 파서 클래스만 변경하면 다른 출력 형식을 처리할 수 있다.

필수 문법

  • 템플릿 문자열에서 "List" 또는 "Provide" 등의 리스트 생성을 지시하는 동사 사용
  • 숫자를 명시하여 원하는 항목 수 지정
  • 마지막에 반드시 \n{format_instructions} 포함

format_instructions

콤마로 구분된 리스트 형식을 명시한다.
각 항목이 콤마로 구분되어야 함을 모델에 알린다.
출력 형식 예시 제공

chain.invoke 실행

# "대한민국 관광명소"에 대한 체인 호출 실행
chain.invoke({"subject": "대한민국 관광명소"})

결과값

['경복궁', '인사동', '부산 해운대해수욕장', '제주도', '남산타워']

chain.stream 실행

# 스트림을 순회합니다.
for s in chain.stream({"subject": "대한민국 관광명소"}):
    print(s)  # 스트림의 내용을 출력합니다.

결과값

['경복궁']
['인사동']
['부산 해운대해수욕장']
['제주도']
['남산타워']
profile
성문이

0개의 댓글