본문 바로가기
인공지능/생성형 AI

[생성형 AI] LangChain이란?

by 클레어몬트 2025. 2. 17.

ㅁLangChain: LLM을 활용하여 응용 프로그램을 개발하는 라이브러리

랭체인은 '확률론적 앵무새' 이다


주로 OpenAI의 GPT, Google의 PaLM, Meta의 Llama 등 다양한 LLM과 통합하여 문서 검색, 데이터 분석, 자동화된 AI 응답 시스템 등을 구축하는 데 사용된다

LangChain은 LLM을 더 강력하게 활용할 수 있도록 다양한 기능을 제공하며, 크게 두 가지 핵심 개념으로 나뉜다
1. LLM과의 연결(Connecting LLMs)
OpenAI, Hugging Face, Cohere 등의 LLM API를 쉽게 사용할 수 있도록 지원한다. API 호출을 단순화하고, 다양한 모델을 유기적으로 활용할 수 있다.

 

2. LLM을 활용한 애플리케이션 구축(Building with LLMs)
LLM을 단순한 문장 생성 도구가 아니라, 검색, 데이터 처리, 외부 도구 호출 등의 기능과 결합하여 보다 정교한 응용 프로그램을 개발할 수 있도록 돕는다.

 


[LangChain의 주요 구성 요소]
LangChain은 LLM을 활용한 다양한 기능을 모듈화하여 제공한다

1) 모델(Model)
OpenAI, Hugging Face, Google AI 등의 다양한 LLM을 쉽게 연동할 수 있다

from langchain.llms import OpenAI

llm = OpenAI(model_name="text-davinci-003")
response = llm("LangChain이 뭐야?")
print(response)

 


2) 프롬프트 템플릿(Prompt Templates)
프롬프트 엔지니어링을 쉽게 할 수 있도록 템플릿을 제공하여, 효율적인 질문 생성이 가능하다

from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["topic"],
    template="Tell me about {topic}."
)

print(prompt.format(topic="LangChain"))

 


3) 체인(Chains)
LLM 단독 호출이 아니라, 여러 개의 프롬프트 또는 API 호출을 연결하여 복잡한 작업 수행이 가능하다

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

template = PromptTemplate(input_variables=["name"], template="What is {name}?")
llm_chain = LLMChain(llm=OpenAI(model_name="text-davinci-003"), prompt=template)

response = llm_chain.run("LangChain")
print(response)

 


4) 메모리(Memory)
LLM은 기본적으로 대화의 문맥을 기억하지 못하는데, LangChain은 대화의 맥락을 유지하는 기능을 제공한다

from langchain.memory import ConversationBufferMemory

memory = ConversationBufferMemory()
memory.save_context({"input": "안녕?"}, {"output": "안녕하세요!"})
print(memory.load_memory_variables({}))

 


5) 에이전트(Agents)

LLM이 외부 도구(API, 검색 엔진 등)를 사용할 수 있도록 지원하는 기능이다

e.g. AI가 날씨 API를 호출하여 현재 날씨를 조회하고 답변하도록 설정 가능

 


6) 데이터 검색 및 RAG(Retrieval-Augmented Generation)
LangChain은 문서 검색과 LLM을 결합(RAG)하여, 최신 정보를 반영한 응답을 생성할 수 있도록 지원한다

from langchain.document_loaders import TextLoader

loader = TextLoader("example.txt")
documents = loader.load()

 


(LangChain 활용 사례)



※ LangChain vs 일반 LLM API 호출

LangChain은 프레임워크다


LangChain은 단순한 LLM API 호출을 넘어서 AI 시스템을 효율적으로 구축할 수 있도록 다양한 기능을 제공하는 점에서 차별화된다

(라이브러리이지만 프레임워크의 의의를 갖는다)

 

 

 


LangChain은 LLM을 활용한 AI 애플리케이션 개발을 돕는 프레임워크로, 프롬프트 엔지니어링, 체인, 메모리, 데이터 검색, 에이전트 기능을 통합하여 보다 정교한 AI 응용을 구축할 수 있도록 지원한다.
특히 RAG(Retrieval-Augmented Generation)와 같은 최신 기술과 결합하면, 최신 정보를 반영한 지능적인 AI 시스템을 개발하는 것이 가능하다!