Search

주요 모듈

대분류
인공지능/데이터
프레임워크
소분류
LangChain/RAG
유형
LangChain
부유형
Introduction LangChain
Main Module Detail
최종 편집 일시
2024/10/29 05:24
생성 일시
2024/10/25 06:18
14 more properties

LangChain 주요 모듈

LangChain은 각 모듈에 대해 확장 가능한 표준 인터페이스와 외부 기능 통합을 제공한다.

Model I/O

언어모델과의 인터페이스
모든 언어 모델 애플리케이션의 핵심 요소
LangChain은 모든 언어 모델과 인터페이스할 수 있는 빌딩 블록을 제공한다.
Prompt: 모델 입력을 템플릿화, 동적으로 선택 및 관리
Language Models: 공통 인터페이스를 통해 언어 모델을 호출
Output Parser: 모델 출력에서 정보 추출

Data Connection(or Index)

애플리케이션별 데이터와의 인터페이스
많은 LLM 애플리케이션에는 모델 훈련 세트의 일부가 아닌 사용자별 데이터가 필요
LangChain은 데이터를 로드, 변환, 저장 및 쿼리할 수 있는 빌딩 블록을 제공
Document loaders: 다양한 소스에서 문서 불러오기
Document transformers: 문서분할, Q&A형식으로 문서 변환, 중복 문서 작세 등 다양한 작업 수행
Text Splitters: 문서가 너무 길어서 LLM에 한 번에 입력이 어려운 경우 사용
Text embedding models: 비정형 텍스트를 float 숫자 목록으로 변환
Vector stores: embedding된 데이터 저장 및 검색
Retrievers: 문자열을 받아서 document 목록을 반환
LangChain에서 데이터를 처리하는 전체적인 흐름을 설명하는 도식

Chains

랭체인에서 가장 핵심적인 개념 중 하나
Chain의 뜻 그대로 데이터 -> LLM1 -> LLM2 … -> plugin -> output 등 다양한 방식으로 사용자가 원하는대로 모듈들을 엮을 수 있다.
간단한 애플리케이션의 경우 LLM을 단독으로 사용할 수 있지만 더 복잡한 애플리케이션의 경우 서로 또다른 기능을 수행하는 컴포넌트와 함께 LLM을 연결해야 한다.
LangChain은 이러한 컴포넌트를 "chain"으로 연결할 수 있는 인터페이스를 제공하고 컴포넌트에 대한 호출 시퀀스로 정의한다.

Agents

Chain과 더불어 랭체인에서 가장 중요한 개념 중 하나
다양한 tool을 사용하여 사용자의 입력에 따라 상황에 맞게 다른 결과를 반환받을 수 있다.
이제까지 설명했던 component들이 모두 LLM과 text와의 상호 작용 위주였다면, agent는 외부 다른 리소스와 상호작용이 가능하게끔 도와준다.
기본적으로 agent에는 다양한 tool들이 있다.
구글 검색 결과를 활용할 수 있는 serpapi 부터 날씨 정보를 알 수 있는 openweather api 등 수많은 기능들을 제공하며 지금 현재도 계속 추가되고 있다.
LLM과 에이전트(Agent), 그리고 툴(Tools)이 상호작용하여 사용자 요청을 처리하는 과정을 설명한 흐름도

Memory

메모리는 LLM이 데이터를 저장하고 검색할 수 있게 도와준다.
메모리를 사용하면 단기, 장기 기억이 가능하며 연속적인 채팅이 가능하다.
Chain이나 Agent가 일종의 ‘기억’을 갖는 것처럼 만들어 준다고 할 수 있다.
다만 메모리라는 개념 자체가 기존 채팅 기록들을 prompt에 넣어 제공하도록 구성되어 있다.

Callbacks

모든 체인의 중간 단계 기록 및 스트리밍
LangChain은 LLM 애플리케이션의 다양한 단계에 연결할 수 있는 콜백 시스템을 제공한다.
이는 로깅, 모니터링, 스트리밍 및 기타 작업에 유용하며 API 전체에서 사용할 수 있는 콜백 인수를 사용하여 이러한 이벤트를 받을 수 있다.