LangChain과 LangGraph의 차이점
LangChain은 선형적인 체인 구조를 사용하며, 구성 요소들이 순차적으로 연결되어 처리됩니다. 주요 특징은 다음과 같습니다:
- 구조: 선형적인 체인 구조, 일방향 흐름
- 처리 방식: 순차적 처리, 이전 모듈의 출력이 다음 모듈의 입력으로 사용
- 주요 구성 요소: 문서 로더, 텍스트 분할기, 임베딩 모델, 벡터 스토어, 프롬프트 템플릿, 출력 파서 등
- 주요 사용 사례:
- RAG (Retrieval Augmented Generation) 시스템: 문서 로딩, 분할, 임베딩, 저장, 검색, 프롬프트 생성 등의 과정을 포함합니다.
- 에이전트 구축: LM의 응답 결과물을 도구 활용에 적합한 형태로 가공합니다.
- 정보 추출: 문서에서 특정 키워드나 정보를 추출하고, 원하는 형식(예: JSON)으로 출력합니다.
- 개발 용이성: LangChain Expression Language (LCEL)를 사용하여 쉽게 구성 요소를 연결할 수 있습니다.
LangGraph는 비선형적인 그래프 구조를 사용하며, 노드와 엣지로 구성되어 있습니다. 주요 특징은 다음과 같습니다:
- 구조: 비선형 그래프 구조, 노드와 엣지로 연결
- 처리 방식: 에이전트 기반 메시지 라우팅, 메시지 내용에 따라 다음 노드를 동적으로 결정
- 흐름: 양방향 흐름 가능
- 주요 사용 사례:
- 동적 워크플로우 관리: 비선형적이고 복잡한 프로세스를 처리
- 다중 에이전트 시스템: 여러 에이전트 간의 협업 및 상호 작용 관리
- 특징: 에이전트가 메시지를 어떤 노드로 보낼지 결정하며, 라우터가 에이전트와 도구 사이의 상호 작용을 매개합니다.
요약:
- LangChain은 일방향 체인 구조로, RAG, 에이전트 생성, 정보 추출과 같은 선형적인 작업에 적합합니다.
- LangGraph는 양방향 그래프 구조로, 다중 에이전트 시스템과 같이 동적이고 비선형적인 작업에 적합합니다.