Langchain Study | 3-2. Agents 1 - Basic
LLM(언어모델)은 단순히 질문에 대한 답변을 줄 뿐 그 이상은 할 수 없습니다. 예를 들어 검색 결과에 대해 로컬 파일에 저장한다거나, API를 수행하는 등의 Action을 취할 수 없습니다. Langchain의 Agents 모듈을 사용하면 LLM을 활용하여 더 확장된 다양한 작업들을 수행할 수 있게 해줍니다! 이번 챕터에서는 Agents 모듈에 ...
LLM(언어모델)은 단순히 질문에 대한 답변을 줄 뿐 그 이상은 할 수 없습니다. 예를 들어 검색 결과에 대해 로컬 파일에 저장한다거나, API를 수행하는 등의 Action을 취할 수 없습니다. Langchain의 Agents 모듈을 사용하면 LLM을 활용하여 더 확장된 다양한 작업들을 수행할 수 있게 해줍니다! 이번 챕터에서는 Agents 모듈에 ...
이번 챕터에서는 여러 가지 모듈들을 서로 연동하기 위한 방법인 Chains 모듈에 대해 공부해보겠습니다! 랭체인에서 모듈들을 연동하기 위한 방법은 크게 두 가지로 분류됩니다. 기존 방식이었던 Legacy Chains 방식과 현재 권장되고 대체되는 방식인 LCEL Chains 방식입니다. Chains이 무엇인지에 대해 알아보고, 각 방식들에 대해서...
이번 챕터에서는 Langchain verion2에서 제공하는 모듈을 이용해보겠습니다! 가상환경 구축을 참고하여 라이브러리 버전을 Langchain version2로 맞춰주세요~ 이번 챕터에서는 대화기록을 Memory에 저장했었는데요, 이것을 이용자 별, 즉 세션 별로 구분해서 대화기록을 관리하는 챗봇을 만들어보겠습니다. Langchain의 Run...
이전 챕터에서 대화 세션 내에서 대화 기록을 저장하는 Memory 모듈을 사용해보았습니다. 어플리케이션 프로그램이 종료되어도 기존의 대화 내용을 저장하는 방법이 있는데요, 대화 내용을 데이터베이스에 저장하여 영속화하는 방법입니다. 이번 챕터에서는 앱 종료 후에도 소통을 재개할 수 있는 어플리케이션을 개발해보도록 하겠습니다! Docker로 Red...
많은 LLM 애플리케이션은 대화형 인터페이스를 가지고 있습니다. 우리가 흔히 말하는 챗봇과 같은 형식이죠. 대화의 필수 요소 중 하나는 이전에 대화에서 도입된 정보를 참조할 수 있는 능력입니다. 이번 챕터에서는 언어 모델과의 과거 상호작용에 대한 정보를 저장하는 능력인 “Memory”에 대해 배워보도록 하겠습니다. 랭체인에서는 시스템에 메모리를 추가...
지난 챕터에서는 RAG 기법을 이용해서 QA 시스템을 개발해보았는데요, 벡터 데이터베이스를 호출하고, 유사도 검색 수행 후, 해당 결과값과 질문을 결합하는 프롬프트를 생성하고, 언어 모델을 호출하여 프롬프트를 전달하는 등 여러 과정을 거쳤습니다. 이번 챕터에서는 위 과정을 보다 간단하게 처리할 수 있는 RetrievalQA 모듈을 소개해드리겠습니다!...
지금까지 RAG의 개념과 Retrieval(검색기)를 통한 유사도 검색에 대한 개념에 대해 알아보았습니다. 이번 챕터에서는 랭체인의 Retrieval 모듈들을 이용하여, 어떻게 소스에 적용되고 활용하는지 같이 실제 예제를 통해 알아보겠습니다! 이번에 수행해볼 예제는 주어진 PDF 파일을 기반으로 답변하는 챗봇 만들기 입니다! 0. 사전 준비 ...
이전 챕터의 RAG 아키텍쳐에 대해 살펴보면서 임베딩과 벡터 저장소(벡터 데이터베이스)에 대한 용어를 간단하게 짚고 넘어갔었습니다! 이번 챕터에서는 데이터 소스가 벡터 데이터베이스에 저장이 되고, 사용자가 입력한 질문으로 벡터 데이터베이스에서 관련 정보를 추출하는 과정이 어떻게 진행되는 지에 대해 알아보도록 하겠습니다. 각 과정에서 어떤 Langc...
RAG란 무엇이고, 왜 필요할까? GPT와 같은 언어모델(LLM)은 기존에 학습된 정보를 바탕으로 답변을 생성합니다. 그렇기 때문에 모델 학습 이후의 최신 정보나, 공개되지 않은 기업 고유의 매뉴얼 등 사용자 특정 데이터에 대한 답변을 하지 못합니다. 이 문제를 해결하는 방법 중 하나가 바로 RAG(Retrieval-Augumented Genera...
이번 챕터에서는 Langchain의 모듈 중 가장 필수적이고 많이 쓰이는 Model I/O 모듈에 대해 알아봅시다. 1장에서 다뤘던 간단한 LLM 어플리케이션의 아키텍쳐 그림을 다시 살펴봅시다. 위 아키텍쳐에서 숫자를 매긴 부분에 대한 동작은 아래와 같이 이루어집니다. Langchain의 Model I/O는 아래의 모듈로 구성됩니다. ...
Langchain의 각 모듈들에 대해 자세하게 배우기에 앞서 로컬에 환경구성 하는 방법에 대해 소개해드리겠습니다. 랭체인은 파이썬으로 수행하기 때문에 Pycharm, vscode, jupyter notebook 등 다양한 IDE에서 실행할 수 있습니다. 기존에 편하게 쓰시던 IDE가 있다면 해당 IDE를 사용하셔도 무방합니다. 이번 글에서는 비주얼...
vscode에서 requirements-v2.txt 파일 프로젝트 루트 경로에 두기 📎requirements-v2.txt cmd 창 열기 cmd창에 명령어를 통해 새로운 가상환경 생성 python -m venv {가상환경이름} cmd창에 명령어를 통해 새로운 가상환경 활...
Langchain이란 무엇일까요? 앞으로 글에서는 여러 챕터로 나눠 Langchain이 무엇이고, Langchain을 사용하는 방법, 더 나아가 응용하는 방법에 대해 배워보도록 하겠습니다. LLM LLM이란? Langchain이 무엇인지에 대해 설명하기 앞서 우리는 LLM에 대한 이해가 필요합니다. LLM은 Large Language Mo...