LangChain 프레임워크를 통해 언어 모델은 다음과 같은 기능을 수행할 수 있다.
- 문맥을 인식하는 기능: LangChain은 언어 모델을 다양한 문맥 소스와 연결합니다. 여기에는 프롬프트 지시사항, 소수의 예시, 응답에 근거한 내용 등이 포함됩니다. 이를 통해 언어 모델은 제공된 정보를 기반으로 더 정확하고 관련성 높은 답변을 생성할 수 있습니다.
- 추론하는 기능: 또한, 언어 모델은 주어진 문맥을 바탕으로 어떠한 답변을 제공하거나, 어떤 조치를 취해야 할지를 스스로 추론할 수 있습니다. 이는 언어 모델이 단순히 정보를 재생산하는 것을 넘어서, 주어진 상황을 분석하고 적절한 해결책을 제시할 수 있음을 의미합니다.
LangChain 프레임워크는 생성형 AI 서비스 개발을 위한 모듈화된 생태계이다.
여러 구성 요소들이 서로 유기적으로 연결되어 있어, 복잡한 AI 워크플로우를 쉽고 빠르게 개발하고 배포할 수 있도록 도와준다. (실제론 복잡한 워크플로우보단 단순한 워크플로우를 선호?한다고 한다.)
각 구성 요소를 역할과 특징 중심으로 알아보자.
1. LangChain 라이브러리
기반이 되는 핵심 라이브러리
→ LangChain을 직접 “코드로 사용하는” 라이브러리이다.
주요 특징
- 지원 언어: Python, JavaScript (Node.js, Deno 등)
- 컴포넌트 기반: 다양한 기능을 모듈화한 컴포넌트를 제공한다 주요 컴포넌트
| 컴포넌트 | 설명 |
|---|
Prompt | LLM 입력에 사용할 프롬프트를 템플릿화하여 변수로 동적으로 구성 가능 |
LLM | OpenAI, Anthropic 등의 모델을 호출하는 언어 모델 인터페이스 |
OutputParser | LLM의 출력 결과를 파싱하여 구조화된 형식(JSON, List 등)으로 변환 |
Retriever | RAG 기반 응용에서 문서 검색 기능을 담당 |
Memory | 대화형 시스템에서 대화 내역을 저장하고 재사용하기 위한 메모리 모듈 |
LCEL (LangChain Expression Language) | 프롬프트 → LLM → 파서의 과정을 함수형 스타일로 간결하게 구성 가능 |
| (Runnable, Chain, RunnabelMap, RunnableSequence, RunnableLambda 기본 구성 요소 제공) | |
Agent | 도구를 선택하고 순차적으로 호출하여 문제를 스스로 해결할 수 있는 체계 (tool, RAG 등) |
주요 기능
- 체인(Chain): 여러 컴포넌트를 연결하여 일련의 처리 과정을 자동화
- 에이전트(Agent): LLM이 스스로 툴을 선택하고, 순차적으로 실행해 문제 해결
2. LangChain 템플릿
빠르게 시작할 수 있도록 구성된 예제 모음
→ 자주 쓰는 LLM 기반 워크플로우를 미리 구성해둔 템플릿
예시
- 질문-응답 시스템
- RAG 기반 문서 검색
- 코드 생성기
- 요약기
- 채팅봇 등
목적
- 빠른 프로토타이핑
- 구조적 참고 아키텍처 제공
- 배포 가능한 상태의 샘플
3. LangGraph
LangChain 위에 구축된 "멀티 액터 기반 LLM 워크플로우 설계 툴"
핵심 개념
- Graph(그래프) 기반 구조
- 각 노드는 하나의 체인 또는 에이전트
- 상태 유지(Stateful) 가능
- 조건 분기, 루프 반복, 병렬 실행 등 복잡한 흐름 설계 가능
사용 예시
- Web 검색 Agent → Insight Agent → 전략 작성 Agent → 보고서 생성 Agent
- 의사결정형 AI 시나리오 (예: 고객 상담, 의료진단 등)
- RAG 구조를 순환 구조로 정교화하는 다단계 시스템
4. LangServe
LangChain으로 만든 Chain/Agent를 REST API로 배포하는 도구
특징
FastAPI 기반으로 설계됨
- LangChain 체인을 바로
서버로 띄울 수 있음
- LLM을 이용한 기능을 백엔드 API로 활용할 수 있음
사용 시나리오
- LLM 기반 요약 API
- 텍스트 분류/추론 API
- 외부 서비스에 LangChain을 연동할 때
5. LangSmith
LangChain 기반 서비스의 테스트, 평가, 모니터링을 위한 플랫폼
주요 기능
- LLM 체인 및 에이전트의 실행 기록 시각화
- 프롬프트, 파라미터, 출력 결과 비교
- 성능 평가 (정확도, 일관성 등)
- 버그 추적 및 디버깅
왜 필요한가요?
LLM은 입력이 조금만 달라져도 결과가 달라지기 때문에,
- 일관성 테스트
- 버전별 비교
- 실제 사용자 입력 추적 등을 통해 품질 관리가 중요하다.
LangSmith는 이러한 과정을 시각적으로 쉽게 도와준다.
📌
본 게시글은 https://wikidocs.net/book/14314 을 인용하였습니다.