LangChain의 EnumOutputParser는 언어 모델의 출력을 미리 정의된 열거형(Enum) 값 중 하나로 파싱하는 도구입니다. 이 파서의 주요 특징과 사용법은 다음과 같습니다.
1 주요 특징
- 열거형 파싱: 문자열 출력을 미리 정의된 Enum 값으로 변환합니다.
- 타입 안전성: 파싱된 결과가 반드시 정의된 Enum 값 중 하나임을 보장합니다.
- 유연성: 공백이나 줄바꿈 문자를 자동으로 처리합니다.
2 사용 방법
EnumOutputParser는 언어 모델의 출력에서 유효한 Enum 값을 추출하는 데 유용합니다. 이를 통해 출력 데이터의 일관성을 유지하고 예측 가능성을 높일 수 있습니다. 파서를 사용하려면, 미리 정의된 Enum 값을 설정하고 해당 값을 기준으로 문자열 출력을 파싱합니다.
# LangSmith 추적을 설정합니다. https://smith.langchain.com
# !pip install langchain-teddynote
from langchain_teddynote import logging
# 프로젝트 이름을 입력합니다.
logging.langsmith("CH03-OutputParser")enum모듈을 사용하여Colors클래스를 정의합니다.Colors클래스는Enum을 상속받으며,RED,GREEN,BLUE세 가지 색상 값을 가집니다.
EnumOutputParser 를 생성합니다.
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
# 프롬프트 템플릿을 생성합니다.
prompt = PromptTemplate.from_template(
"""다음의 물체는 어떤 색깔인가요?
Object: {object}
Instructions: {instructions}"""
# 파서에서 지시사항 형식을 가져와 부분적으로 적용합니다.
).partial(instructions=parser.get_format_instructions())
# 체인을 생성합니다.
chain = prompt | ChatOpenAI() | parserchain.invoke함수를 사용하여 “하늘”에 대한 정보를 요청합니다.
결과를 확인합니다.