Skip to content

LangGraph 활용처

1. 문서 기반 고도화 RAG 파이프라인

상황

  • 사용자가 "LangGraph가 무엇인가요?"라고 질문

  • 여러 chunk로 나뉜 기술문서에서 답변을 생성해야 할 때

LangGraph 활용 구조

질문
 ↓
[Retrieve node] → 관련 chunk 3개 검색
 ↓
[Filter node] → 중요도 낮은 chunk 제거
 ↓
[Summary node] → 각 chunk 요약
 ↓
[Answer node] → 요약된 정보 기반 답변 생성

이점

  • 무의미한 chunk를 제거할 수 있다.

  • 비용 절감과 정확도 향상이 가능하다.

  • 각 노드에서 개별 로직을 적용할 수 있다. (예: chunk별 요약 스타일을 다르게 할 수 있다.)

문서 기반 고도화 RAG 파이프라인문서 검색정보 요약을 결합하여, 사용자의 질문에 대해 보다 정확하고 관련성 높은 답변을 생성하는 고급 파이프라인을 구성하는 방식이다.

이 시스템은 여러 문서 chunk로 나누어진 콘텐츠를 처리하여, 질문에 맞는 chunk만 선택적으로 활용하고, 필요한 부분을 요약한 후 최종적으로 답변을 생성한다.

구체적인 상황 설명

상황

  • 사용자가 "LangGraph가 무엇인가요?"라고 질문하는 경우

  • 이 질문에 대해 여러 개의 기술 문서에서 정보를 검색해야 하며, 각 문서는 chunk로 나뉘어져 있다.

  • 각 chunk는 문서 내에서 독립적으로 유의미한 정보를 포함하고 있기 때문에, 이를 효율적으로 검색하고 요약하여 최적의 답변을 도출해야 한다.

LangGraph 활용 구조

  1. [Retrieve node] - 관련 chunk 검색

    • 기술 문서에서 사용자의 질문과 관련된 정보를 담고 있을 가능성이 높은 chunk들벡터 검색을 통해 추출한다.

    • 이 단계에서 사용자는 top-k 방식 또는 유사도 기반 검색을 통해 관련된 문서들을 찾는다.

  2. [Filter node] - 중요도 낮은 chunk 제거

    • 검색된 chunk들 중에서, 질문과 관련이 적은 부분을 필터링한다.

    • 문서 길이가 길거나, 내용이 너무 일반적인 부분은 제외하고, 실제 질문에 관련된 핵심 정보를 담고 있는 부분만 남긴다.

  3. [Summary node] - 각 chunk 요약

    • 선택된 chunk들을 요약하여 불필요한 세부 정보를 제거하고 핵심만 남긴다.

    • 예를 들어, 기술적인 용어나 복잡한 문장은 간결하게 재구성하여 질문에 대한 답변을 보다 명확하게 도출할 수 있도록 한다.

  4. [Answer node] - 최종 답변 생성

    • 요약된 정보를 기반으로 최종적인 답변을 생성한다.

    • 정확한 답변을 제공하기 위해, 요약된 내용을 조합하거나 다양한 관점을 제시할 수 있다.

각 노드의 구체적 역할과 이점

1. [Retrieve node] - 관련 chunk 검색

  • 역할: 사용자의 질문에 관련된 문서의 chunk들을 검색하는 단계.

    • 예를 들어, 사용자가 "LangGraph가 무엇인가요?"라고 질문하면, LangGraph에 대한 정의, 특징, 활용 사례 등이 포함된 chunk를 검색하여 선택한다.

    • 이때 벡터 검색, 문서 임베딩 등을 사용하여 의미적으로 가까운 chunk를 찾는다.

  • 이점

    • 정확도: 정확한 chunk를 선택하여 불필요한 데이터 처리 비용을 절감할 수 있다.

    • 유연성: 사용자의 질문에 맞는 문서만 선택적으로 사용할 수 있어, 응답의 관련성을 높일 수 있다.

2. [Filter node] - 중요도 낮은 chunk 제거

  • 역할: 검색된 chunk 중에서 질문과 관련성이 낮은 부분을 제거하는 단계.

    • 예를 들어, 기술 문서 내에서 세부적인 코드 예시불필요한 배경 설명 등이 포함되어 있다면 이를 제거한다.
  • 이점

    • 효율성: 핵심적인 정보만 추출하여 불필요한 chunk를 걸러내고 성능을 최적화할 수 있다.

    • 정확도: 중요한 정보만 남기고, 중복된 내용이나 잘못된 정보를 제외하여 정확도를 높일 수 있다.

3. [Summary node] - 각 chunk 요약

  • 역할: 검색된 chunk들을 핵심적인 내용으로 요약하여, 답변을 생성하기 쉽게 만든다.

    • 예를 들어, 길고 복잡한 기술적인 설명을 간략하게 재구성하여 사용자가 쉽게 이해할 수 있는 형태로 만든다.
  • 이점

    • 시간 절약: 긴 문서나 chunk를 요약하여 사용자가 원하는 답변을 빠르게 제공할 수 있다.

    • 간결성: 핵심 내용만 포함되어 불필요한 설명이 제거되므로, 정확하고 간결한 답변을 제공할 수 있다.

4. [Answer node] - 최종 답변 생성

  • 역할: 요약된 정보들을 조합하여 사용자의 질문에 대한 최종 답변을 생성한다.

    • 예를 들어, 여러 문서에서 추출한 chunk들의 요약을 바탕으로 사용자에게 직접적인 답변을 제공한다.
  • 이점

    • 유연성: 여러 다른 관점에서 요약된 정보를 결합하여 최적의 답변을 도출할 수 있다.

    • 정확도: 최종 답변이 더 정확하고 유의미한 정보를 포함할 수 있게 된다.

실제 사용 예시

예시: "LangGraph가 무엇인가요?" 질문에 대한 답변 생성

  1. Retrieve node:
    사용자 질문에 맞는 LangGraph 관련 문서를 벡터 검색을 통해 검색하여 3개의 관련 chunk를 찾는다.

  2. Filter node:
    검색된 chunk 중에서 불필요한 내용이나 중복된 설명을 제거하고, 핵심적인 LangGraph의 특징에 해당하는 chunk들만 남긴다.

  3. Summary node:
    각 chunk를 간결하게 요약하여 LangGraph의 주요 개념, 활용 방식, 장점 등을 간단히 정리한다.

  4. Answer node:
    요약된 내용을 바탕으로 "LangGraph는 LLM 애플리케이션을 상태 기반으로 설계할 수 있게 해주는 프레임워크입니다. 여러 노드를 통해 복잡한 워크플로우를 설계할 수 있으며, 분기와 반복, 병렬 처리 등이 가능합니다."와 같은 최종 답변을 생성한다.

이점 및 최적화

  • 정확도 향상: 무의미한 chunk나 정보를 걸러내고, 중요한 정보만을 사용하므로 정확한 답변을 도출할 수 있다.

  • 비용 절감: 불필요한 chunk를 처리하지 않으므로 시스템 자원 사용을 최소화할 수 있다.

  • 유연성: 각 노드에서 처리하는 로직을 사용자의 요구사항에 맞게 최적화할 수 있다. 예를 들어, 요약 방식이나 필터링 기준을 쉽게 변경할 수 있다.

  • 효율성: 한 번의 질의에 대해 빠르고 간결한 답변을 제공할 수 있다.

2. 상태 기반 대화 흐름 관리 (Stateful Chatbot)

상황

  • 고객센터 챗봇이 “반품을 하고 싶어요” 라고 말하면,
    → 사용자의 최근 주문 상태와 계정 상태에 따라 분기 처리해야 할 때

LangGraph 활용 구조

질문
 ↓
[Intent 판단 node]
   ├── "반품"
   │   ├── [주문 유무 node] → 최근 주문 조회
   │   │   ├── 있음 → [반품 절차 안내]
   │   │   └── 없음 → [안내 불가 응답]
   └── "문의" → 고객센터 연결

이점

  • 유저 상태(세션, 구매 이력 등)를 그래프 상태에 포함할 수 있다.

  • 다단계 판단 흐름을 구성할 수 있다.

3. 멀티 문서 비교 분석 시스템

상황

  • 사용자가 "LangChain과 LlamaIndex의 차이점은?"이라고 질문

LangGraph 활용 구조

질문
 ↓
[검색 노드] → 각각 LangChain 문서, LlamaIndex 문서 검색
 ↓
[요약 노드] → 각각 요약
 ↓
[비교 노드] → 유사점/차이점 비교 정리
 ↓
[응답 노드] → 답변 생성

이점

  • 문서 2개 이상을 병렬 처리하여 성능 향상이 가능하다.

  • 비교용 프롬프트와 요약 로직을 분리할 수 있다.

4. Multi-hop QA (Chain-of-Thought)

상황

  • 사용자가 “Qdrant에 데이터를 넣고 검색하려면 어떤 절차가 필요하나요?”라고 질문

  • 단계별로 reasoning이 필요한 질문

LangGraph 활용 구조

질문
 ↓
[1단계: 데이터 삽입 이해 노드]
 ↓
[2단계: 벡터 검색 이해 노드]
 ↓
[3단계: 전체 절차 생성 노드]
 ↓
[응답 생성]

이점

  • 중간 reasoning 결과들을 상태로 유지하면서 답변을 생성할 수 있다.

  • 단계별 추론 실패를 방지할 수 있다.

5. 코드 리뷰/편집 도우미

상황

  • 사용자가 "이 코드에서 성능 병목을 찾아줘"라고 요청

  • 긴 코드 chunk별로 나눠서 분석하고, 이슈가 있는 부분만 응답하고 싶을 때

LangGraph 활용 구조

질문 + 코드
 ↓
[코드 chunking]
 ↓
[chunk 분석 node] (여러 개, 병렬 처리 가능)
 ↓
[성능 이슈가 있는 chunk만 추림]
 ↓
[응답 생성]

이점

  • 각 chunk를 노드로 분석할 수 있어 병목 지점만 선택할 수 있다.

  • 상태로 이슈 chunk, 사유, 개선 제안까지 포함할 수 있다.

6. 사용자 목표 기반 워크플로우 수행

상황

  • 사용자가 “Qdrant 설치해서 샘플 문서 검색까지 해보고 싶어요”라고 요청

LangGraph 활용 구조

질문
 ↓
[목표 추출] → "Qdrant 설치 및 테스트"
 ↓
[계획 수립 node] → Step 1~3 구성
 ↓
[각 단계 실행 node]
   ├─ Step 1: 설치 명령어 생성
   ├─ Step 2: 문서 업로드 코드 작성
   └─ Step 3: 검색 코드 작성
 ↓
[통합 응답]

이점

  • 단계별 프롬프트, 조건 분기를 사용할 수 있다.

  • 사용자의 피드백을 받아 흐름을 수정할 수 있다.

7. 자동화된 LLM 평가 플로우 (A/B Testing)

상황

  • 두 개의 LLM (예: GPT-4 vs Gemini)을 같은 질문으로 평가하고 비교

LangGraph 활용 구조

질문
 ↓
[LLM A 응답 생성 노드]
[LLM B 응답 생성 노드]
 ↓
[응답 비교 평가 노드] (예: Rouge, BLEU, 또는 사용자 피드백)
 ↓
[최종 결과 반환]

이점

  • 동일 질문으로 멀티 LLM 비교가 가능하다.

  • LangGraph 상태에 각 결과와 점수를 저장할 수 있다.

결론

LangGraph는 단순히 여러 노드를 잇는 것이 아니라, 다음이 가능하게 해준다:

  • 상태 유지 기반 흐름 제어

  • 조건 분기, 반복, 병렬 흐름 설계

  • 유저 입력, 환경, 질문 유형에 따라 다양한 처리 흐름 구성

“고정된 질문-답 구조를 넘어서고 싶다”,
“chunk마다 다르게 처리하거나 사용자 상태를 반영하고 싶다”
→ 이런 상황이면 LangGraph는 아주 강력한 선택이 될 수 있다.

어떤 워크플로우가 현재 프로젝트에 가장 잘 맞을지 고민된다면,
필요한 유즈케이스에 맞는 LangGraph 예제를 만들어줄 수 있다.