DM Log

[AI 개념 및 이해 #4] LangChain: LLM 오케스트레이션 프레임워크 본문

개발공부/AI

[AI 개념 및 이해 #4] LangChain: LLM 오케스트레이션 프레임워크

Dev. Dong 2025. 9. 7. 16:57

LanChain 필요성

LLM은 강력하지만, 한계 존재

  • 긴 문서 처리의 어려움
  • 외부 데이터베이스 / 검색엔진과 연결 불가능
  • 프롬프트 직접 설계 필요
  • 복잡한 워크플로 (검색 → 요약 → 답변 등)을 구현하기 번거러움

👉 한계를 해결하고 LLM + 외부 데이터 + 다양한 기능을 연결하는 것이 LangChain


LangChain 핵심 아이디어

단순 LLM 호출을 넘어, 모듈화된 컴포넌트를 연결해 AI 애플리케이션을 빠르게 구축하도록 설계

[핵심 아이디어]

  • Chain: LLM과 여러 모듈을 연결한 파이프라인
  • Agent: 도구(tool)를 선택 실행 가능하도록 하는 지능형 에이전트
  • Memory: 대화나 상태를 저장하여 문맥 유지

[주요 컴포넌트]

 LangChain의 핵심 구성 요소

1. Document Loader

  • PDF, TXT, 웹페이지, 데이터 베이스 등 다양한 데이터 소스 로딩
  • 예: PyPDFLoader, TextLoader, UnstructureLoader

2. Text Splitter

  • 긴 문서를 일정 길이로 잘라 벡터화에 적합하게 변환
  • 대표: RecursiveCharacterTextSplitter (문맥 손실 최소화)

3. Embeddings

  • 텍스트를 의미 벡터로 변환
  • 예: OpenAIEmbeddings, HuggingFaceEmbeddings

4. VectorStore

  • 임베딩을 저장 / 검색하는 DB와 연결
  • Chroma, Pinecone, Weaviate 등 지원

5. Retriever

  • 질문과 관련된 문서 조각을 VectorStore에서 가져오는 인터페이스
  • RAG의 핵심 단계

6. Chain

  • 여러 단계를 묶어 일련의 작업으로 구성
  • 예: RetrievalQA Chain → (검색) → (LLM 답변)

7. Agent

  • 단순 체인보다 유연
  • 툴을 선택하여 실행 가능하도록 결정 로직 내장
  • 예: 계산기, 검색 엔진, DB 진의 등을 자동 호출

간단한 LLMChain 예제

 

⚠️ 환경 변수에 설정하거나 코드 상단에 추가 필요

export OPENAI_API_KEY="your_api_key_here" # macOS/Linux
setx OPENAI_API_KEY "your_api_key_here" # Windows PowerShell


또는

import os
os.environ["OPENAI_API_KEY"] = "your_api_key_here"
from langchain_openai import ChatOpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# LLM 초기화
llm = ChatOpenAI(model="gpt-4o")

# 프롬프트 템플릿 정의
prompt = PromptTemplate(
    input_variables=["topic"],
    template="다음 주제에 대해 세 문장으로 설명해줘: {topic}"
)

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

# 실행
result = chain.run("벡터 데이터베이스")
print(result)

간단한 LLMChain 장점 및 한계

[LangChain 장점]

  • LLM과 다양한 데이터 소스 / 툴을 표준화된 방식으로 연결
  • 다양한 플러그인과 예제 존재
  • 연구·프로토타입에서 프로덕션까지 사용 용이

[LangChain 한계]

  • 러닝 커브가 있음 (컴포넌트 개념 이해 필요)
  • 의존성 높으며, 빠르게 변화하는 생태계 대응 필요
  • 단순 프로젝트에는 복잡하게 느껴질 수 있음

(부록) 용어 정리

  • Chain: 여러 모듈을 연결한 파이프라인
  • Agent: 도구 선택·실행이 가능한 지능형 구성 요소
  • Memory: 대화 상태 유지 모듈
  • Retriever: 관련 문서 검색 인터페이스
  • VectorStore: 벡터를 저장/검색하는 데이터베이스