AI | LangChain

성수당·2025년 12월 23일

AI

목록 보기
3/7
post-thumbnail

🥔 LangChain | LLM을 위한 프레임워크

LangChain은 LLM(Large Language Models)의 실제 활용을 더 쉽고, 강력하게 만들어주는 파이썬 기반의 프레임워크다. 단순히 LLM에 프롬프트를 넣고 답변을 받는 수준을 넘어서, 메모리, 툴 연동, 외부 지식 검색, 복잡한 체이닝 로직까지 설계할 수 있도록 돕는다.


🥔 LangChain이란?

“LLM을 단순한 텍스트 생성기가 아닌 애플리케이션의 핵심 로직으로 활용할 수 있게 만든다.”

LangChain은 다음과 같은 문제를 해결하려고 탄생했다:

  • LLM 응답이 stateless한 한계
  • 외부 도구와의 연동 어려움
  • 복잡한 멀티 단계 추론 로직의 어려움
  • 검색 기반 생성 (RAG) 구현의 반복적인 구조

🥔 LangChain의 주요 개념

구성 요소설명
LLMOpenAI, 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 호출을 이어붙이는 구조를 제공한다.


🥔 예제 1: 단순 체인 (Simple Chain)

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": "성수"}))

결과: "안녕 성수, 오늘 기분은 어때요? 😊"


🥔 예제 2: RAG 구현 (Vector Store + Retriever)

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의 역할은?")

🥔 예제 3: 에이전트 + 계산기 Tool 연동

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 vs 직접 구현

항목직접 구현LangChain
프롬프트 조합수동 문자열 처리PromptTemplate 제공
RAGEmbedding, 검색, 프롬프트 삽입 직접 구현Retriever + Chain으로 구조화
Tool 호출LLM 응답 파싱 후 수동 API 호출Tool + Agent로 추상화
Memory별도 저장/관리ConversationBuffer 등 내장 메모리

🥔 실전에서의 활용 예시

분야사용 사례
사내 챗봇내부 위키 검색 + 대화 유지
고객 응대제품 정보 자동 제공 + 계산기 Tool 연동
문서 요약PDF → Embedding → 요약 Chain 구성
지식 베이스RAG + 검색 기반 답변 시스템

🥔 마무리

LangChain은 복잡한 LLM 응용 로직을 모듈화하고 체계화할 수 있는 프레임워크다.
특히 RAG, 에이전트 기반 도구 실행, 프롬프트 엔지니어링에 유용하며,
LLM을 실제 "앱처럼" 동작하게 만들고 싶다면 LangChain이 거의 필수적이다.

profile
말하는 감자🥔

0개의 댓글