◾Intro
🔸RAG pipeline의 한계와 LangGraph의 필요성
- 기존 RAG의 문제점
- 환각 및 사전 지식 답변 : LLM이 생성한 답변이 문서(context) 내용과 일치하지 않거나, 문서에 없는 사전 지식으로 답변하기도 함.
- 검색 품질 의존성 : RAG의 답변 품질이 검색된 문서의 관련성에 크게 의존 → 잘못된 검색 결과는 답변 품질 저하로 이어짐.
- 정보 부족 시 대처 미흡 : document loader → retrieve → augment → answer 로 이어지는 단방향 구조로 인해 이전 단계로 되돌아가거나 중간 결과물을 수정하기 어려움.
- 코딩 복잡성 : 복잡한 파이프라인의 경우 코드 양이 길어짐. → 유지보수 어려움
- LangGraph를 통한 해결책 : 순환 연산, 조건부 흐름 제어 등의 기능을 통해 복잡한 파이프라인을 더 간결하게 구현 가능.
- 모듈화 : Node - Edge 구조를 바탕으로 각 노드를 모듈화함으로써 relevance checker, query rewriting, additional web search 등 서로 다른 역할의 모듈들을 간편하게 추가 가능.
- Conditional Edge : 조건부 기능을 통해 평가 결과나 사용자 개입 등으로 워크플로우를 유연하게 분기 처리 가능.
- Checkpointer : 과거 실행 과정의 특정 시점으로 되돌아가 State를 수정하고 워크플로우를 다시 실행할 수 있다. → 디버깅 및 최적화 용이
◾State
◾Node
◾Build graph