LeanX

랭체인·랭그래프 개발 입문

체인부터 RAG 파이프라인, 도구 호출, 멀티 에이전트, 그리고 관계로 검색하는 GraphRAG(지식 그래프·Cypher·Neo4j)까지 — 코드로 만드는 AI 앱

랭체인이란? 설치와 환경설정

랭체인은 LLM 앱 개발에 필요한 부품(모델, 프롬프트, 검색, 도구)을 표준 규격으로 제공하는 프레임워크이며, pip 설치와 API 키 환경변수 설정만 하면 바로 시작할 수 있습니다. 약 10분.

첫 체인 만들기: 프롬프트 | 모델 | 파서

체인은 '프롬프트 → 모델 → 파서'를 파이프(|) 연산자로 연결한 조립라인이며, 10줄 이내의 코드로 번역기 같은 첫 LLM 앱을 만들 수 있습니다. 약 10분.

프롬프트 템플릿: 질문의 틀 만들기

프롬프트 템플릿은 자주 쓰는 질문의 틀에 변수 구멍을 뚫어 둔 것으로, ChatPromptTemplate로 역할(system/human)을 나누고 few-shot으로 예시를 심으면 답변 품질이 크게 올라갑니다. 약 12분.

모델과 출력 파서: JSON으로 답 받기

init_chat_model은 제공사가 달라도 같은 코드로 모델을 부르는 만능 어댑터이고, with_structured_output을 쓰면 AI의 답을 검증된 JSON(파이썬 객체)으로 안전하게 받을 수 있습니다. 약 12분.

RAG ①: 문서 로더와 청킹

RAG는 AI에게 오픈북 시험을 보게 하는 기술이며, 그 첫 단계는 문서 로더로 PDF·웹페이지를 읽어 들이고 텍스트 스플리터로 검색하기 좋은 크기(청크)로 자르는 것입니다. 약 12분.

RAG ②: 임베딩과 벡터스토어

임베딩은 텍스트의 의미를 숫자 좌표로 바꾸는 기술이고, 벡터스토어(Chroma 등)는 그 좌표를 저장해 두었다가 질문과 의미가 가까운 청크를 찾아주는 의미 기반 검색 창고입니다. 약 12분.

RAG ③: 리트리버와 QA 챗봇 완성

리트리버는 질문을 받아 관련 청크를 찾아오는 표준 검색 부품이며, '검색 → 프롬프트에 주입 → 답변 생성'을 체인으로 연결하면 내 문서에 근거해 답하는 QA 챗봇이 완성됩니다. 약 15분.

도구 호출과 에이전트: create_agent

@tool 데코레이터로 파이썬 함수를 AI가 쓸 수 있는 도구로 바꾸고, create_agent에 모델과 도구를 넘기면 AI가 스스로 판단해 도구를 골라 쓰는 에이전트가 완성됩니다. 약 13분.

랭그래프 맛보기: 멀티 에이전트 패턴

랭그래프는 AI 워크플로우를 노드와 엣지의 흐름도로 설계하는 라이브러리이며, 에이전트가 많아지면 Router(분류·배분), Subagents(감독자-부하), Handoffs(담당자 교체) 패턴 중 상황에 맞는 것을 골라 조합합니다. 약 15분.

대화 기억 넣기: 챗봇이 이전 말을 기억하게

RunnableWithMessageHistory로 체인에 메모리를 씌우면 세션(session_id)별로 대화 기록이 자동 누적되어 챗봇이 이전 대화를 기억하게 되며, 저장소 함수만 교체하면 인메모리에서 Redis나 DB 기반 영구 저장소로 손쉽게 전환할 수 있습니다. 약 10분.

랭스미스로 디버깅: 실행 추적과 품질 평가

환경변수 세 줄로 LangSmith 추적을 활성화하면 체인과 에이전트의 모든 LLM 호출, 입출력, 지연 시간, 토큰 수가 대시보드에 자동 기록되며, 데이터셋과 평가(evaluation) 기능으로 RAG나 챗봇의 답변 품질을 수치로 측정할 수 있습니다. 약 9분.

RAG 고도화: 하이브리드 검색과 리랭킹

기본 벡터 검색만으로는 정확한 키워드가 중요한 경우를 놓치기 때문에, BM25 키워드 검색과 벡터 검색을 합친 하이브리드 검색(EnsembleRetriever), 크로스인코더 리랭킹, 부모-자식 청크 전략을 조합하면 RAG 정확도를 크게 높일 수 있습니다. 약 13분.

GraphRAG: 관계로 검색하는 RAG

GraphRAG는 문서를 노드·엣지·속성의 지식 그래프로 만들어 엔티티 간 관계를 따라 검색하는 RAG로, 청킹으로 문맥이 끊기거나 Top-K가 연결고리를 놓치는 벡터 RAG의 한계를 보완합니다. 약 11분.

Neo4j·랭체인으로 지식 그래프 만들기

지식 그래프는 노드(개체)·엣지(관계)·속성(상세정보)으로 구성되며, Neo4j 그래프 DB와 랭체인의 LLMGraphTransformer·GraphCypherQAChain으로 텍스트를 그래프로 바꾸고 Cypher로 조회해 답변을 생성할 수 있습니다. 약 12분.

Cypher 기초: 그래프 DB의 CRUD

Cypher는 그래프 DB의 SQL로, 노드는 소괄호·관계는 대괄호로 표현하며 CREATE/MATCH/WHERE와 *1..5 다단계 탐색으로 노드·관계를 생성·조회·필터링할 수 있습니다. 약 12분.

실전 GraphRAG 파이프라인: PDF에서 답변까지

실전 GraphRAG는 PDF를 로드·청킹한 뒤 문서 구조를 렉시컬 그래프로 적재(LLM 없이 MERGE)하고, LLM으로 엔티티·관계를 스키마 기반 추출·프루닝해 지식 그래프를 만든 다음, GraphCypherQAChain으로 질문을 Cypher로 번역해 답변합니다. 약 13분.