LLM을 사용해서 복잡한 워크플로를 짜고 싶은 분들을 위하여 랭그래프 튜토리얼을 올리려 합니다
수학 시간에 1+1=2라는 걸 배웠듯이, 하나하나 써보겠습니다.
- langgraph의 핵심 개념을 이해합니다.
- langgraph의 핵심 구성요소를 배웁니다.
- langgraph를 동작시키는 워크플로workflow를 설계합니다.
- 도구 사용 및 순환구조를 다룹니다.
- 실전 배포 준비 및 테스트를 해봅니다.
랭그래프는 LLM을 쉽게 다루기 위한 langchain 프레임워크의 일부로 탄생했습니다. 특히 랭그래프를 만든 이유는 각 단계에서의 작업의 상태를 보고, 조건에 따라 단계별로 작업의 흐름을 제어하기 위해서입니다. LLM을 통제하기 위해 처음 만들었던 langchain은 기본적으로 선형적으로 흘러가는 한계를 갖고 있고, 복잡한 조건에 따라 동작하게 만들려면 if절을 지저분하게 짜야하는 문제점을 안고 있었죠. 하지마 ㄴ랭그래프는 작업별 결과를 state라는 상태를 기반으로 저장하고, 각 단계를 마칠 때마다 상태를 업데이트 합니다. 그래서 지금까지 무슨 일이 있었는지 state를 통해 계속 추적할 수 있습니다.
또한 랭그래프는 오케스트라 지휘자가 연주자들의 순서를 조율하듯, 복잡한 로직을 제어합니다. if 조건에 따라 이 답변이 충분한지/아닌지 혹은 A,B,C 중에 어디로 가야하는지를 결정합니다. 또한 결과가 마음에 안 들면 이전 작업으로 돌아가 작업을 반복하게 만들 수 있습니다. 또한 작업을 중간에 저장해 나중에 다시 시작할 수 있게 해주는 체크 포인트 기능을 제공합니다. 이를 통해 인간이 중간에 끼어들 수도 있고 과거로 돌아가는 등 복잡한 작업들을 쉽게 수행할 수 있는 체계(프레임워크)를 제공합니다.
즉 정리하자면, 랭그래프는 상태 저장 및 조건분기(조건에 따른 명령)에 기반한 오케스트레이션 프레임워크라고 할 수 있습니다.
랭체인 : 선로대로 가는 편도행 기차
랭그래프 : 목적지에 도착할 때까지 주변을 살피고 필요하면 돌아올 수도 있는 자율주행 드론