LangChain 소개

LLM 애플리케이션 개발 프레임워크

LangChain의 개념, 주요 기능, 구성 요소에 대한 소개

AI
RAG
LangChain
저자

Kwangmin Kim

공개

2025년 01월 05일

1 LangChain 소개

1.1 LangChain이란?

  • LangChain은 대규모 언어 모델(LLM)을 활용한 애플리케이션을 쉽게 개발할 수 있도록 도와주는 오픈소스 프레임워크다.
  • 똑똑한 LLM을 제대로 사용하기 위해선 Prompt에 질문을 잘 입력해야하지만 어렵거나 많은 대화를 주고 받아야한다.
  • LangChain은 이러한 문제를 해결하여 원하는 비즈니스 로직을 구현하기 위한 프레임워크다.
    • 자동화 또는 workflow들을 chain으로 엮어 관리
  • 예를 들어, 문서를 넣고 임베딩하여 벡터 데이터베이스에 저장하고, 검색하여 원하는 정보를 추출하는 것을 자동화 할 수 있다.
    • langchain에서는 이 과정이 굉장히 편하게 구현될 수 있다.
    • 문서의 어떤 부분이 입력부분으로 사용되는지
    • 프롬프트는 어떻게 작성되었는지
    • 출력은 어떻게 되는지를 세세하게 관찰 및 관리하여 성능을 높혀야한다.
  • Langchain의 규모는 점점 커지고 있고 많은 DBMS 기업들과 같은 대형 기업들이 Langchain 개발사와 협력하고 있다.
  • 여러 지원 프로그램을 사용해서 더 쉽게 사용할 수 있다.
    • LangSmith: 추적 기능 서비스
    • LangGraph: 다중 협업 관리 서비스
    • LangServe: 배포를 쉽게 할 수 있는 서비스

1.1.1 주요 특징

  • 모듈화된 구조: 각 기능을 독립적인 모듈로 제공하여 필요한 부분만 선택적으로 사용 가능
  • 다양한 LLM 지원: OpenAI GPT, Anthropic Claude, Google PaLM 등 다양한 LLM 모델 지원
  • 체인 구성: 여러 작업을 연결하여 복잡한 워크플로우 구성 가능
  • 메모리 관리: 대화 기록 및 컨텍스트 관리 기능 제공
  • 외부 도구 연동: 검색 엔진, 데이터베이스, API 등 외부 도구와의 연동 지원

1.2 LangChain의 핵심 구성 요소

1.2.1 Models (모델)

  • LLMs: 텍스트 입력을 받아 텍스트를 생성하는 모델
  • Chat Models: 대화형 인터페이스를 제공하는 모델
  • Text Embedding Models: 텍스트를 벡터로 변환하는 모델

1.2.2 Prompts (프롬프트)

  • Prompt Templates: 동적으로 프롬프트를 생성하는 템플릿
  • Example Selectors: 상황에 맞는 예시를 선택하는 도구
  • Output Parsers: LLM 출력을 구조화된 형태로 파싱

1.2.3 Chains (체인)

  • Simple Chains: 단순한 작업 연결
  • Sequential Chains: 순차적 작업 실행
  • Router Chains: 조건에 따른 분기 처리

1.2.4 Memory (메모리)

  • Conversation Buffer Memory: 대화 기록 저장
  • Conversation Summary Memory: 대화 요약 저장
  • Vector Store Memory: 벡터 기반 메모리 저장

1.2.5 Agents (에이전트)

  • Tool-using Agents: 외부 도구를 사용하는 에이전트
  • Conversational Agents: 대화형 에이전트
  • Custom Agents: 사용자 정의 에이전트

1.3 LangChain의 장점

1.3.1 개발 생산성 향상

  • 복잡한 LLM 애플리케이션을 간단한 코드로 구현 가능
  • 재사용 가능한 컴포넌트 제공
  • 풍부한 문서와 예제 제공

1.3.2 확장성

  • 모듈화된 구조로 필요에 따라 기능 추가/제거 가능
  • 다양한 LLM 모델과 외부 서비스 연동 지원
  • 커스텀 컴포넌트 개발 가능

1.3.3 유연성

  • 다양한 사용 사례에 맞는 템플릿 제공
  • 체인을 통한 복잡한 워크플로우 구성
  • 조건부 로직 및 분기 처리 지원

1.4 주요 사용 사례

1.4.1 1. 챗봇 개발

  • 고객 서비스 챗봇
  • 개인 비서 챗봇
  • 도메인 특화 Q&A 시스템

1.4.2 2. 문서 분석

  • 문서 요약
  • 정보 추출
  • 문서 검색 및 질의응답

1.4.3 3. 코드 생성

  • 자동 코드 생성
  • 코드 리뷰 및 최적화
  • 기술 문서 생성

1.4.4 4. 데이터 분석

  • 자연어 기반 데이터 쿼리
  • 보고서 자동 생성
  • 인사이트 추출

1.5 LangChain vs 다른 프레임워크

1.5.1 LangChain의 차별점

  • 포괄적인 생태계: LLM 애플리케이션 개발에 필요한 모든 도구 제공
  • 활발한 커뮤니티: 지속적인 업데이트와 풍부한 리소스
  • 실용적 접근: 실제 프로덕션 환경에서 사용 가능한 안정성
  • 교육 자료: 체계적인 학습 자료와 튜토리얼 제공

1.6 시작하기 전 준비사항

1.6.1 필수 지식

  • Python 기본 문법
  • API 사용 경험
  • 기본적인 머신러닝 개념

1.6.2 권장 지식

  • 자연어 처리 기초
  • 벡터 데이터베이스 개념
  • 클라우드 서비스 사용 경험

1.6.3 개발 환경

  • Python 3.8 이상
  • OpenAI API 키 (또는 다른 LLM 서비스 키)
  • 적절한 IDE (VSCode, PyCharm 등)

Subscribe

Enjoy this blog? Get notified of new posts by email: