본문 바로가기
IT&DEV - IT & 개발/ETC

LangChain이란? – LLM과 현실 데이터를 연결하는 혁신적 프레임워크

by Hoft 2025. 11. 12.
728x90
반응형

📘 LangChain이란?

LangChain은 대형 언어 모델(LLM, Large Language Model)을 실제 서비스나 응용 프로그램에 통합하기 위한 오픈소스 프레임워크입니다.
쉽게 말해, “ChatGPT 같은 LLM을 여러분의 데이터와 연결하고, 실용적인 기능을 붙이는 도구”라고 볼 수 있습니다.

💡 예시:
ChatGPT에게 회사 내부 문서를 학습시켜서, “우리 회사 인사규정에 따른 휴가 신청 방법”을 물으면 정확하게 답하게 만들 수 있습니다.


🚀 LangChain의 핵심 아이디어

LangChain은 단순히 LLM을 호출하는 것에 그치지 않고, 데이터, 기억, 도구, 체인을 결합하여 강력한 AI 응용 프로그램을 만듭니다.

구성 요소 설명
LLM (Language Model) GPT, Claude, Gemini, Ollama 등 다양한 모델을 통합 가능
Prompt Template LLM에게 전달할 프롬프트를 구조적으로 관리
Chains 여러 단계를 연결하여 복잡한 로직을 자동화
Memory 대화의 맥락을 기억하게 함
Tools / Agents 외부 API, 검색, 계산기 등 다양한 기능 수행
Vector Store (벡터 저장소) 문서나 데이터의 임베딩을 저장하고 검색

🧩 LangChain의 아키텍처 이해하기

LangChain은 크게 두 가지 레이어로 나뉩니다.

1️⃣ LangChain Core

  • LLM, Prompt, Chain, Memory 같은 기본 구성요소 제공
  • 모델 독립적이며, OpenAI, Anthropic, Ollama 등 어떤 엔진도 연결 가능

2️⃣ LangChain Community / Hub

  • 커뮤니티에서 만든 도구와 체인 모음
  • 예: FAISS, Chroma, Pinecone, Weaviate 같은 벡터 DB 통합

💡 LangChain 설치하기

MacOS 또는 Linux 환경에서 아래 명령어를 입력하면 설치할 수 있습니다.

pip install langchain
pip install langchain-community
pip install langchain-core

⚙️ 추가로 사용하는 도구에 따라 다음 패키지를 함께 설치합니다.

pip install faiss-cpu chromadb openai

🧠 간단한 예제: ChatGPT와 LangChain 연결

아래 예제는 LangChain을 이용해 ChatGPT(OpenAI) 와 대화하는 기본 코드입니다.

from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate

# 1. LLM 설정
llm = ChatOpenAI(
    model="gpt-4-turbo",
    temperature=0.7,
    openai_api_key="YOUR_API_KEY"
)

# 2. 프롬프트 템플릿 구성
prompt = ChatPromptTemplate.from_template("다음 문장을 영어로 번역해줘: {text}")

# 3. LLM 호출
result = llm.invoke(prompt.format_messages(text="안녕하세요, 만나서 반가워요!"))
print(result.content)

🔍 RAG (Retrieval-Augmented Generation) 구현하기

RAG는 LangChain의 가장 강력한 기능 중 하나로,
“LLM + 나의 문서 데이터”를 결합해 실제 비즈니스에 활용할 수 있게 합니다.

예시 구조

[PDF, TXT, DOCX 등 문서] → [텍스트 분할] → [임베딩 생성] → [벡터DB 저장] → [질의 시 유사도 검색] → [LLM 응답]

간단한 RAG 예제 코드

from langchain_community.document_loaders import PyPDFLoader
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI

# 1️⃣ 문서 로드
loader = PyPDFLoader("company_policy.pdf")
docs = loader.load()

# 2️⃣ 벡터화
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embeddings)

# 3️⃣ 검색 체인 구성
retriever = vectorstore.as_retriever()
qa = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(model="gpt-4-turbo"),
    retriever=retriever,
    chain_type="stuff"
)

# 4️⃣ 질의
query = "휴가 신청 절차가 어떻게 되나요?"
result = qa.invoke({"query": query})
print(result["result"])

⚙️ Ollama와 LangChain 통합 (로컬 모델 활용)

최근에는 Ollama를 통해 로컬에서 LLM을 실행하고 LangChain과 연동할 수 있습니다.
예를 들어, 인터넷 없이도 “qwen2.5”나 “llama3” 모델을 사용할 수 있습니다.

from langchain_ollama import OllamaLLM

llm = OllamaLLM(model="llama3", base_url="http://localhost:11434")

response = llm.invoke("LangChain이 뭐야?")
print(response)

💡 이 방식은 개인정보나 내부 문서를 다룰 때 매우 유용합니다.


🧱 실전 활용 예시

분야 활용 사례
🧾 사내 문서 Q&A 사내 정책, 메뉴얼 기반으로 답변하는 챗봇
💬 고객상담 LLM + CRM 데이터 연동하여 상담 자동화
🧠 지식검색 논문, 보고서 기반의 인공지능 리서치 도우미
💹 자동매매 뉴스 요약, 종목 분석 등 LLM 기반 의사결정 지원
🧰 코드 분석 코드 자동 리뷰 및 요약 시스템

🔔 LangChain의 장점 요약

✅ 다양한 LLM 엔진 통합 (OpenAI, Claude, Gemini, Ollama 등)
✅ 외부 데이터와 손쉽게 연결 (RAG)
✅ 체인/메모리 구조로 복잡한 로직 구현 가능
✅ 오픈소스 기반으로 확장성 우수
✅ Python과 JS 모두 지원


🌎 마무리 – LangChain의 미래

LangChain은 단순한 “AI 호출 라이브러리”가 아닙니다.
이제는 AI 서비스의 백엔드 플랫폼으로 진화하고 있으며,
“데이터와 AI를 연결하는 표준 프레임워크”로 자리 잡고 있습니다.

앞으로 AI 서비스를 직접 만들고 싶다면, LangChain은 반드시 익혀야 할 핵심 기술입니다.
여러분의 데이터와 AI가 진짜로 연결되는 순간, LangChain이 그 중심에 있을 것입니다. 🚀


✨ 추천 학습 리소스


 

728x90
반응형

댓글