8️⃣LangChain LCEL vs. LangGraph

LangChain LCEL

LanngChain에서 제공하는 LangChain Expression Language(LCEL)은 기본적으로 복잡한 Chain을 쉽게 구성하고 관리하기 위한 도구입니다. 즉, LangChain 구성 요소의 체인을 구축할 수 있도록 하는 형식입니다.

  1. LangChain의 주기능인 Expression Chain을 개발하기 위한 목적

  2. Streaming(스트리밍), Async(비동기), Parallel execution(병렬 실행) 등과 같은 고급 기능을 제공

  3. LangSmith 및 LangServe와의 손쉬운 통합 활용

LangGraph

LangGraph는 LangChain을 사용하여 사용자 정의 Agents를 쉽게 구축하고 단순한 체인 이상의 것을 구축하기 위한 라이브러리 입니다. LangGraph는 제품에서 다이어그램 화할 수 있다면 엔지니어링에서도 정확하게 만들 수 있다는 아이디어를 기반으로 간단한 Graph로의 접근 방식을 사용합니다.

에이전트 워크플로를 순환 그래프 구조로 취급하며, 각 노드는 함수 또는 Langchain 실행 가능한 객체를 나타내고 에지는 노드 간의 연결입니다.

LangGraph의 주요 기능은 다음과 같습니다.

  • Nodes: 도구와 같은 모든 함수 또는 Langchain 실행 가능한 객체(Runnable Object).

  • Edge: 노드 사이의 방향을 정의합니다.

  • Stateful Graph: 그래프의 기본 유형입니다. 노드를 통해 데이터를 처리할 때 상태 객체를 관리하고 업데이트하도록 설계되었습니다.

LCEL과 LangGraph 차이점

여러 에이전트 간의 조정을 통해 Multi-agent 시스템을 만드는 것이 목표라면 LangGraph를 사용하는 것이 좋습니다. 그러나 작업을 완료하기 위해 DAGs 또는 Chain을 생성하려는 경우에는 LangChain LCEL 사용이 가장 적합합니다.

LCEL vs LangGraph: PDF 문서 RAG 비교

  1. LangChain LCEL

  2. LangGraph

Setup Environments

Dataset

Loader, Embedding, Retrieval

1. LangChain LCEL

2. LangGraph

Conclusion

  1. 생성 응답을 보면 LangGraph가 더 정확합니다. 이는 Nodes, Edges, States에 의한 유연성으로 더 많은 출력으로 State에서 연결해주면 됩니다.

  2. LCEL은 응답의 정확도를 위하여 몇 차례의 디버깅이 요구됩니다.

  3. 결론적으로 모듈화된 LangGraph의 Nodes 자체가 Agent나 함수로 사용 가능합니다.

  4. Chain을 구성하고자 하면 LCEL을 Agent를 함수로 사용하여 연결하고 하면 LangGraph가 유용합니다.

  5. 단, LCEL의 Chain이 속도가 더 빠르며, LangGraph의 Agent는 상대적으로 속도가 느립니다.

Last updated