[카테고리:] LangChain

안녕하세요. 오늘 정리할 내용은 캐싱과 직렬화입니다. 우선 캐싱에 대해서 알아보도록 하겠습니다. 우선 캐싱(Caching)이란 어떤 요청에 대한 답변을 기록해 두었다가 다음번에 같은 요청이 들어오면 기록한 답변을 바로 제공해줌으로써 자원과 비용을 아끼는 행위로 볼 수 있겠습니다. 이러한…

EnumOutputParser에 대해 알아보겠습니다. Enum이란 열거형을 의미합니다. 어떤 값들을 열거하여 표현하는 방식인것이지요 와 같이 열거하여 표현합니다. Enum을 상속받은 클래스을 정의합니다. 으로 EnumOutputParser의 인스턴스 parser로 만들어 주는데 인수로 아까 만든 Colors클래스가 enum클래스로 지정되어 들어갑니다. 을 통해 확인한…

파서(Parser)라고 하는 것은 뭔가를 해석하다~ 라는 의미가 됩니다. LLM이 어떠한 답변을 주고 이 답변(출력)을 더 유용하고 구조화된 형태로 변환하는 역할을 한다는 의미입니다. LLM에 invoke했을 경우 답변에 대해 어떤 특정한 형태로 변환해야 할 일이 생기는 경우가…

MMR 알고리즘은 첫번째 단계에서 가장 관련성 높은 항목을 선택한다. 이후의 각 단계에서는 현재 선택된 항목들과 관련성이 높으면서도 가장 차별화된 항목을 찾아 선택합니다. 이는 람다값에 의해 조절되며, 이 값이 클수록 관련성을, 작을수록 다양성을 더 중시합니다. FewShotChatMessagePromptTemplate에…

이전 글에 이어지는 내용입니다. 이번에는 ExampleSelector를 정리해보려고 합니다. 아까의 FewShot예제를 사용한 코드는 좋습니다. 원하는 방식으로 잘되고요 그런데 비용(토큰) 소모가 심합니다. 저는 LangSmith를 사용하여 추적했기 때문에 보시면 1,966 토큰이나 소모한 것을 보실 수 있습니다. 아래의 36토큰을…

위의 코드를 설명하겠습니다. langchain_core.output_parsers import StrOutputParser 보터 보도록 하겠습니다. 위의 코드는 LangChain에서 Output이 어떤 형태로 나올지 결정하기 위해서 import한 코드입니다. OpenAI사의 ChatGPT를 개발자의 프로젝트에 사용하기 위해 LangChain을 사용하는데 이때 OpenAI의 ChatGPT를 사용하기 위한 LangChain입니다. 그런데…