프로그래머 파푸리카

Langchain Study | 3-2. Chains (Legacy ChainsLCEL)

이번 챕터에서는 여러 가지 모듈들을 서로 연동하기 위한 방법인 Chains 모듈에 대해 공부해보겠습니다! 랭체인에서 모듈들을 연동하기 위한 방법은 크게 두 가지로 분류됩니다. 기존 방식이었던 Legacy Chains 방식과 현재 권장되고 대체되는 방식인 LCEL Chains 방식입니다. Chains이 무엇인지에 대해 알아보고, 각 방식들에 대해서...

Langchain Study | 3-2. Memory 3 - RunnableWithMessageHistoryMemory Session

이번 챕터에서는 Langchain verion2에서 제공하는 모듈을 이용해보겠습니다! 가상환경 구축을 참고하여 라이브러리 버전을 Langchain version2로 맞춰주세요~ 이번 챕터에서는 대화기록을 Memory에 저장했었는데요, 이것을 이용자 별, 즉 세션 별로 구분해서 대화기록을 관리하는 챗봇을 만들어보겠습니다. Langchain의 Run...

Langchain Study | 3-2. Memory 2 - 영속적 메모리 구현하기 (Persist Memory)

이전 챕터에서 대화 세션 내에서 대화 기록을 저장하는 Memory 모듈을 사용해보았습니다. 어플리케이션 프로그램이 종료되어도 기존의 대화 내용을 저장하는 방법이 있는데요, 대화 내용을 데이터베이스에 저장하여 영속화하는 방법입니다. 이번 챕터에서는 앱 종료 후에도 소통을 재개할 수 있는 어플리케이션을 개발해보도록 하겠습니다! Docker로 Red...

Langchain Study | 3-2. Memory 1 - Chatbot 만들기

많은 LLM 애플리케이션은 대화형 인터페이스를 가지고 있습니다. 우리가 흔히 말하는 챗봇과 같은 형식이죠. 대화의 필수 요소 중 하나는 이전에 대화에서 도입된 정보를 참조할 수 있는 능력입니다. 이번 챕터에서는 언어 모델과의 과거 상호작용에 대한 정보를 저장하는 능력인 “Memory”에 대해 배워보도록 하겠습니다. 랭체인에서는 시스템에 메모리를 추가...

Langchain Study | 3-2. Retrieval4- RetrievalQA

지난 챕터에서는 RAG 기법을 이용해서 QA 시스템을 개발해보았는데요, 벡터 데이터베이스를 호출하고, 유사도 검색 수행 후, 해당 결과값과 질문을 결합하는 프롬프트를 생성하고, 언어 모델을 호출하여 프롬프트를 전달하는 등 여러 과정을 거쳤습니다. 이번 챕터에서는 위 과정을 보다 간단하게 처리할 수 있는 RetrievalQA 모듈을 소개해드리겠습니다!...

Langchain Study | 3-2. Retrieval3 - PDF기반-챗봇만들기-(실습)

지금까지 RAG의 개념과 Retrieval(검색기)를 통한 유사도 검색에 대한 개념에 대해 알아보았습니다. 이번 챕터에서는 랭체인의 Retrieval 모듈들을 이용하여, 어떻게 소스에 적용되고 활용하는지 같이 실제 예제를 통해 알아보겠습니다! 이번에 수행해볼 예제는 주어진 PDF 파일을 기반으로 답변하는 챗봇 만들기 입니다! 0. 사전 준비 ...

Langchain Study | 3-2. Retrieval2 - Vector Store

이전 챕터의 RAG 아키텍쳐에 대해 살펴보면서 임베딩과 벡터 저장소(벡터 데이터베이스)에 대한 용어를 간단하게 짚고 넘어갔었습니다! 이번 챕터에서는 데이터 소스가 벡터 데이터베이스에 저장이 되고, 사용자가 입력한 질문으로 벡터 데이터베이스에서 관련 정보를 추출하는 과정이 어떻게 진행되는 지에 대해 알아보도록 하겠습니다. 각 과정에서 어떤 Langc...