LangChain은 LLM(Large Language Models)의 실제 활용을 더 쉽고, 강력하게 만들어주는 파이썬 기반의 프레임워크다. 단순히 LLM에 프롬프트를 넣고 답변을 받는 수준을 넘어서, 메모리, 툴 연동, 외부 지식 검색, 복잡한 체이닝 로직까지 설계할 수 있도록 돕는다.
“LLM을 단순한 텍스트 생성기가 아닌 애플리케이션의 핵심 로직으로 활용할 수 있게 만든다.”
LangChain은 다음과 같은 문제를 해결하려고 탄생했다:
| 구성 요소 | 설명 |
|---|---|
| LLM | OpenAI, HuggingFace, Cohere 등 다양한 모델 연동 가능 |
| Prompt Template | 프롬프트를 매개변수화하여 동적으로 구성 |
| Chain | 여러 컴포넌트를 연결한 작업 파이프라인 |
| Memory | 이전 대화를 저장하고 다음 응답에 반영 |
| Agent | 도구(tool)를 선택하고 실행하며 스스로 판단하는 실행 주체 |
| Tool | 검색, 계산기, API 호출 등 외부 기능 연결 |
graph LR
A[User Input] --> B[Prompt Template]
B --> C[LLM]
C --> D[Output]
C --> E[Tool 호출 (예: 검색)]
E --> F[LLM 재입력 또는 Agent 판단]
LangChain은 프롬프트 단일 처리에서 그치지 않고, 상황에 따라 도구를 선택하거나, 복수의 LLM 호출을 이어붙이는 구조를 제공한다.
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
prompt = PromptTemplate.from_template("안녕 {name}, 오늘 기분은 어때?")
llm = OpenAI()
chain = LLMChain(prompt=prompt, llm=llm)
print(chain.run({"name": "성수"}))
결과: "안녕 성수, 오늘 기분은 어때요? 😊"
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
db = FAISS.load_local("my_docs", OpenAIEmbeddings())
retriever = db.as_retriever()
qa_chain = RetrievalQA.from_chain_type(llm=OpenAI(), retriever=retriever)
qa_chain.run("이 문서에서 S3의 역할은?")
from langchain.agents import initialize_agent, Tool
from langchain.agents.agent_types import AgentType
tools = [Tool.from_function(name="계산기", func=lambda x: eval(x))]
agent = initialize_agent(tools, OpenAI(), agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)
agent.run("2025년까지 3년 남았으니까 3 * 365는 몇일이야?")
| 항목 | 직접 구현 | LangChain |
|---|---|---|
| 프롬프트 조합 | 수동 문자열 처리 | PromptTemplate 제공 |
| RAG | Embedding, 검색, 프롬프트 삽입 직접 구현 | Retriever + Chain으로 구조화 |
| Tool 호출 | LLM 응답 파싱 후 수동 API 호출 | Tool + Agent로 추상화 |
| Memory | 별도 저장/관리 | ConversationBuffer 등 내장 메모리 |
| 분야 | 사용 사례 |
|---|---|
| 사내 챗봇 | 내부 위키 검색 + 대화 유지 |
| 고객 응대 | 제품 정보 자동 제공 + 계산기 Tool 연동 |
| 문서 요약 | PDF → Embedding → 요약 Chain 구성 |
| 지식 베이스 | RAG + 검색 기반 답변 시스템 |
LangChain은 복잡한 LLM 응용 로직을 모듈화하고 체계화할 수 있는 프레임워크다.
특히 RAG, 에이전트 기반 도구 실행, 프롬프트 엔지니어링에 유용하며,
LLM을 실제 "앱처럼" 동작하게 만들고 싶다면 LangChain이 거의 필수적이다.