본문 바로가기
AI

LangChain(랭체인)이란?

by Lcoding 2025. 3. 22.
반응형

 

 

안녕하세요.

 

오늘은 랭체인에 대하여 알아보겠습니다.

 

LangChain은 대규모 언어 모델(LLM) 을 이용해 다양한 기능을 구현할 수 있도록 도와주는 파이썬 기반의 프레임워크입니다. 특히, PromptTemplateChain 같은 개념을 활용하여 체계적이고 효율적인 개발이 가능합니다.

LangChain을 쓰면 질문 응답 시스템, AI 에이전트, 챗봇, 콘텐츠 생성기와 같은 기능을 쉽고 빠르게 구현할 수 있습니다.

 

1. 주요 개념 정리 (PromptTemplate, Chain, Documents 변환)

(1) PromptTemplate

  • PromptTemplate은 LLM에게 전달할 프롬프트(입력 문장)를 템플릿 형태로 관리하는 도구입니다.
  • 상황에 따라 동적으로 바뀌는 질문이나 지시사항을 일관된 형식으로 관리하고 생성할 때 사용합니다.
  • 변수(input_variables)를 이용해 매번 다른 질문을 편리하게 만듭니다.

예시 코드 -

from langchain.prompts import PromptTemplate

# PromptTemplate 생성
prompt = PromptTemplate(
    input_variables=["topic", "length"],
    template="{topic}에 대해 {length}자로 요약해 주세요."
)

# 프롬프트 적용 예시
final_prompt = prompt.format(topic="인공지능의 역사", length=200)
print(final_prompt)


#출력 
# 인공지능의 역사에 대해 200자로 요약해 주세요.

 

 

 

(2) Chain(체인)

  • Chain은 여러 단계의 작업을 연결하여 복잡한 작업을 순차적으로 처리하는 구조입니다.
  • 예를 들어, Documents 변환 → 요약 → 키워드 추출 → 최종 답변 생성과 같은 여러 단계를 LLM과 결합하여 자동화할 수 있습니다.
  • LangChain에서는 여러 유형의 Chain을 제공하며, 필요한 기능에 따라 적절한 Chain을 선택하거나 커스텀 Chain을 만들 수 있습니다.

대표적인 Chain 예시:

  • LLMChain: PromptTemplate과 LLM을 결합한 기본적인 Chain입니다.
  • RetrievalQAChain: 문서를 검색하고 관련된 내용을 질문과 연결하여 답변을 생성합니다.

간단한 Chain 예시 코드:

from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# OpenAI 모델 연결
llm = OpenAI(api_key="YOUR_API_KEY")

# PromptTemplate 준비
prompt = PromptTemplate(
    input_variables=["keyword"],
    template="{keyword}의 최신 트렌드를 설명해주세요."
)

# Chain 생성
chain = LLMChain(llm=llm, prompt=prompt)

# Chain 실행
response = chain.run(keyword="인공지능")
print(response)

 

 

(3) Documents 변환 (Document Transformation)

  • Documents 변환이란 LangChain이 외부에서 얻은 데이터를 LLM이 쉽게 이해할 수 있도록 가공하거나 변형하는 과정입니다.
  • 문서 형식의 데이터를 LLM에 넣기 좋게 요약(Summarization), 분할(Splitting), 키워드 추출(Keyword Extraction) 등으로 변환합니다.
  • 특히, Retrieval (검색 기반 답변 생성) 과정에서 흔히 사용됩니다.

Documents 변환 과정 - 

원본 문서(Document)  → (Split: 문서 분할) → 개별 조각으로 분리 →  각 조각에 대해 요약/키워드 추출 → 변환된 문서를 LLM에 제공
 

 

간단한 코드 예시(문서 변환):

from langchain.document_loaders import WebBaseLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains.summarize import load_summarize_chain
from langchain.llms import OpenAI

# 웹 문서 로드
loader = WebBaseLoader("https://ko.wikipedia.org/wiki/인공지능")
documents = loader.load()

# 문서 분할 변환 (Splitting)
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
docs_transformed = text_splitter.split_documents(documents)

# 요약 체인(Summarization Chain) 생성
llm = OpenAI(api_key="YOUR_API_KEY")
summarize_chain = load_summarize_chain(llm, chain_type="map_reduce")

# Documents 변환 후 요약 결과 얻기
summary_result = summarize_chain.run(docs_transformed)
print(summary_result)

 

 

2. 전체 과정 정리 (PromptTemplate → Chain → Documents 변환)

PromptTemplate 생성
     ▼
Chain 구성 (PromptTemplate + LLM 결합)
     ▼
외부에서 가져온 원본 문서(Documents) 로딩
     ▼
Documents 변환(분할/요약 등으로 가공)
     ▼
변환된 Documents를 Chain에 입력하여 원하는 결과 생성

 
 
 

 

3. LangChain 활용 예시

지식 검색 시스템 (RAG: Retrieval-Augmented Generation)

   - 사용자의 질문이 들어오면, 관련 문서를 찾아 LLM이 문서를 요약하고 이해하여 답변 생성

 

대화형 챗봇

   - 사용자의 의도를 파악하여 미리 정의된 문서나 외부 데이터를 참고해 더욱 정확한 대답 제공

 

자동 콘텐츠 생성기

   - 블로그 글, 보고서, 뉴스 기사 등을 프롬프트 템플릿을 활용하여 자동 생성

 

AI 자동화 에이전트

   - AI 스스로 API 호출, 웹 검색, 계산 등 다양한 작업을 자동화하여 효율적 수행 가능

 

 

4. 기술 스택과의 연동

LangChain은 다양한 기술 스택과 쉽게 연동할 수 있습니다.

구분 지원되는 기술
모델 OpenAI GPT, Anthropic Claude, Google Gemini, Hugging Face 등
데이터베이스 PostgreSQL, MySQL, MongoDB, ChromaDB, Pinecone 등
외부 API Google 검색 API, Wikipedia API, 뉴스 API 등
개발 프레임워크 FastAPI, Flask, Streamlit, React 등

 

 

5. 정리

LangChain은 LLM을 활용한 개발 과정에서 발생하는 복잡한 문제를 단순하고 효율적으로 해결할 수 있게 해주는 프레임워크입니다. 프롬프트 엔지니어링, 체인 구성, 에이전트 등을 통해 실제 AI 기반 서비스 및 어플리케이션을 빠르게 구축할 수 있도록 도와주는 역할을 합니다.

 

감사합니다.

반응형

loading