안녕하세요! 오늘은 LLM 애플리케이션 개발에 큰 도움이 되는 LangGraph를 정말 쉽게 설명해 드릴게요. 처음부터 차근차근 알아봅시다!
LangGraph란 무엇인가요? 🤔
여러분이 좋아하는 요리 레시피를 생각해보세요:
- 재료 준비하기
- 야채 썰기
- 고기 볶기
- 소스 넣기
- 간 맞추기
- 완성!
LangGraph는 바로 이런 레시피 같은 도구예요! AI 애플리케이션이 따라갈 단계와 흐름을 정해주는 거죠. 🍳
쉽게 말해서, LangGraph는:
- AI 앱이 해야 할 일을 여러 단계로 나누고
- 각 단계를 어떤 순서로 진행할지 정하고
- 때로는 "이런 경우엔 A로, 저런 경우엔 B로" 같은 길분기도 만들어줍니다
LangGraph의 기본 구성요소 📚
1. 노드(Nodes): 할 일들
레시피의 "야채 썰기", "고기 볶기" 같은 각 작업 단계예요.
def 질문_이해하기(상태):
# 사용자가 무엇을 물었는지 파악하는 함수
return "다음 단계: 검색하기"
def 정보_검색하기(상태):
# 관련 정보를 찾는 함수
return "다음 단계: 답변하기"
def 답변_생성하기(상태):
# AI로 답변을 만드는 함수
return "완료"
2. 에지(Edges): 단계들 사이의 연결
"야채 썬 후에 고기 볶기", "소스 넣은 후 간 맞추기" 같은 순서를 정해주는 거예요.
# 간단하게 표현하면 이런 느낌:
질문_이해하기 → 정보_검색하기 → 답변_생성하기 → 종료
3. 상태(State): 정보 보관함
요리할 때 재료들과 중간 결과물을 담아두는 그릇 같은 거예요. 각 단계에서 필요한 정보를 담고 있습니다.
내_상태 = {
"질문": "파리의 에펠탑은 언제 지어졌나요?",
"검색결과": None,
"답변": None
}
실생활 예시로 이해하기 🏫
학교 선생님의 수업 진행 방식
- 학생 질문 받기 (입력 노드)
- 질문 이해하기 (분석 노드)
- 관련 지식 떠올리기 (검색 노드)
- 쉽게 설명하기 (응답 노드)
- 학생 이해했는지 확인 (평가 노드)
- 이해했으면 → 다음 주제로
- 이해 못했으면 → 다시 설명하기로 돌아가기
이것이 바로 LangGraph의 기본 구조와 같아요!
간단한 LangGraph 예제 💻
아주 간단한 대화 시스템을 만든다고 상상해봅시다:
from langgraph.graph import StateGraph, END
# 1. 각 단계(노드) 정의하기
def 질문_받기(상태):
# 사용자의 질문을 받는 로직
return {"다음_단계": "분석"}
def 질문_분석하기(상태):
# 질문 분석 로직
return {"다음_단계": "검색"}
def 정보_검색하기(상태):
# 정보 검색 로직
return {"다음_단계": "응답"}
def 답변_만들기(상태):
# 답변 생성 로직
return {"다음_단계": "종료"}
# 2. 상태의 흐름을 결정하는 함수
def 다음_단계_결정(상태):
return 상태["다음_단계"]
# 3. 그래프 만들기
대화_흐름 = StateGraph("대화_상태")
# 4. 노드 추가하기
대화_흐름.add_node("질문", 질문_받기)
대화_흐름.add_node("분석", 질문_분석하기)
대화_흐름.add_node("검색", 정보_검색하기)
대화_흐름.add_node("응답", 답변_만들기)
# 5. 노드 연결하기 (조건부)
대화_흐름.add_conditional_edges("", 다음_단계_결정)
대화_흐름.add_edge("종료", END)
# 6. 시작 노드 설정
대화_흐름.set_entry_point("질문")
# 7. 완성!
내_앱 = 대화_흐름.compile()
LangGraph의 장점 🌈
1. 레고 블록처럼 조립이 쉬워요
작은 블록들을 조립해 복잡한 모형을 만드는 것처럼, 작은 함수들을 조합해 복잡한 AI 시스템을 만들 수 있어요.
2. 수정이 편해요
퍼즐의 한 조각만 바꾸듯, 전체 시스템 중 한 부분만 수정할 수 있어요. 다른 부분은 그대로 유지됩니다.
3. 이해하기 쉬워요
지하철 노선도처럼 전체 시스템의 흐름을 한눈에 볼 수 있어요.
실제 활용 사례 🚀
1. 질의응답 비서
사용자 질문 → 의도 파악 → 필요 정보 검색 → 답변 작성 → 결과 전달
예: "내일 서울 날씨 어때?"라고 물으면, 의도를 파악해서 날씨 API를 검색하고 결과를 깔끔하게 알려줍니다.
2. 고객 상담 챗봇
고객 문의 → 문의 유형 분류 → 관련 정보 찾기 → 해결책 제안 → 만족도 확인
예: "환불하고 싶어요"라는 문의가 오면, 환불 정책을 찾아 안내하고 필요한 링크를 제공합니다.
3. 자동 보고서 작성기
데이터 수집 → 데이터 분석 → 중요 포인트 추출 → 보고서 초안 작성 → 편집 및 요약
예: 판매 데이터를 넣으면 중요한 트렌드를 찾아내 보기 좋은 보고서로 만들어 줍니다.
더 복잡한 흐름 예시: 와플 만들기 🧇
레시피를 더 복잡하게 해볼까요?
재료 확인
→ 재료 부족? → [예] → 장보기 리스트 작성 → 장보기
→ [아니오] → 반죽 만들기
→ 반죽이 너무 묽나요? → [예] → 밀가루 더 넣기
→ [아니오] → 와플 기계 예열하기
→ 와플 굽기
→ 충분히 구워졌나요? → [아니오] → 더 굽기
→ [예] → 토핑 얹기 → 완성!
이런 복잡한 조건 분기도 LangGraph로 쉽게 표현할 수 있어요!
주의할 점 ⚠️
미리 계획하세요
- 집을 지을 때 설계도가 필요하듯, 시작 전에 전체 흐름을 그려보세요
- 각 단계에서 필요한 정보와 나오는 결과를 명확히 정의하세요
단순하게 시작하세요
- 처음부터 너무 복잡하게 만들지 마세요
- 기본 기능부터 만들고 점차 확장하는 게 좋아요
자주 테스트하세요
- 모든 단계를 한꺼번에 만들지 말고, 하나씩 만들고 테스트하세요
- 문제가 생겼을 때 원인을 찾기가 훨씬 쉬워져요
문서화를 잘하세요
- 각 노드가 무슨 일을 하는지 설명을 잘 달아두세요
- 나중에 코드를 다시 볼 때 정말 도움됩니다
시작하기 위한 간단한 단계 🏁
설치하기
pip install langgraph langchain-core
기본 구조 정하기
- 앱이 해야 할 일을 단계별로 나누세요
- 각 단계 사이의 흐름을 그림으로 그려보세요
코드 작성하기
- 각 단계를 함수로 만드세요
- 그래프를 만들고 노드와 에지를 연결하세요
테스트하기
- 작은 예시로 테스트해보세요
- 단계별로 결과를 확인하세요
마치며 🎁
LangGraph는 마치 레고 블록이나 요리 레시피처럼, 복잡한 AI 시스템을 쉽게 만들 수 있게 도와주는 도구입니다. 처음에는 간단한 챗봇부터 시작해서, 점점 더 복잡한 시스템으로 확장해 볼 수 있어요.
복잡한 코드를 쓰는 대신, 작은 조각들을 연결해서 큰 그림을 완성하는 즐거움을 느껴보세요!
궁금한 점이 있으시면 댓글로 남겨주세요! 😊
참고 자료
'300===Dev Framework > Langgraph' 카테고리의 다른 글
LangGraph로 AI 답변 품질 제대로 평가하기 🔍 (0) | 2025.03.09 |
---|---|
Langgraph: LLM 기반 애플리케이션의 새로운 뇌 🧠 (0) | 2025.03.09 |