hmk run dev

LangChain으로 AI 애플리케이션 본문

AI

LangChain으로 AI 애플리케이션

hmk run dev 2025. 2. 1. 11:36

최근 대형 언어 모델(LLM, Large Language Model)의 발전으로 AI를 활용한 애플리케이션 개발이 활발해지고 있습니다. 하지만 단순히 OpenAI API를 호출하는 것만으로는 복잡한 애플리케이션을 만들기 어렵죠.

LangChain은 이런 문제를 해결하기 위해 만들어진 프레임워크로, 언어 모델을 다양한 데이터와 연결하고, 에이전트를 통해 복잡한 작업을 수행할 수 있도록 도와줍니다. 이번 글에서는 LangChain의 주요 개념과 아키텍처, 그리고 Python 코드 예제를 소개하겠습니다.

 

 


1️⃣ LangChain이란?

LangChain은 대형 언어 모델을 활용한 AI 애플리케이션을 쉽게 개발할 수 있도록 지원하는 프레임워크입니다.
단순한 텍스트 생성뿐만 아니라 문서 검색, API 호출, 데이터 분석 등 다양한 작업을 수행할 수 있도록 설계되어 있습니다.

✅ LangChain의 핵심 개념

  • LLM (Large Language Model) → OpenAI, Hugging Face 등 다양한 언어 모델을 쉽게 연결
  • Prompt Templates → 입력 프롬프트를 템플릿화하여 관리
  • Memory → 대화 내역을 저장하여 컨텍스트 유지
  • Agents → 여러 도구(tool)를 조합해 복잡한 작업 수행
  • Chains → 여러 단계를 거치는 작업을 연결

 


2️⃣ LangChain 기초: LLM 사용하기

LangChain을 이용해 간단한 텍스트 생성기를 만들어보겠습니다.
아래 코드는 OpenAI의 gpt-3.5-turbo 모델을 사용합니다.

 

from langchain.llms import OpenAI

# OpenAI 모델 사용
llm = OpenAI(model_name="gpt-3.5-turbo", openai_api_key="your_api_key")

# 텍스트 생성 실행
response = llm("LangChain이 무엇인가요?")
print(response)

이렇게 LangChain을 이용하면 간단한 코드로 LLM을 활용할 수 있습니다

 


3️⃣ LangChain의 핵심 아키텍처

LangChain은 단순한 LLM 호출을 넘어서, 복잡한 AI 애플리케이션을 구성할 수 있는 구조를 제공합니다.

🔹 1. 체인 (Chain)

체인은 여러 단계를 연결하는 구조입니다. 예를 들어, 질문을 받고 → 검색 → 요약하는 프로세스를 하나의 체인으로 구성할 수 있습니다.

 

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

# 프롬프트 템플릿 생성
template = PromptTemplate.from_template("한국의 수도는 어디인가요? {question}")

# LLM 체인 생성
chain = LLMChain(llm=llm, prompt=template)

# 실행
response = chain.run("서울인가요?")
print(response)

 

 

🔹 2. 에이전트 (Agent)

에이전트는 LLM이 여러 도구(tool)를 활용하여 스스로 의사 결정을 하며 문제를 해결하는 구조입니다.
예를 들어, LLM이 계산이 필요하면 계산기 API를 호출하고, 검색이 필요하면 웹 검색을 수행하도록 만들 수 있습니다.

 

from langchain.agents import initialize_agent, AgentType
from langchain.agents.tools import Tool
from langchain.llms import OpenAI

# 사용할 도구 (예: 간단한 계산기)
def calculator(expression):
    return eval(expression)

calc_tool = Tool(
    name="Calculator",
    func=calculator,
    description="수학 계산을 수행하는 도구"
)

# 에이전트 생성
agent = initialize_agent(
    tools=[calc_tool],
    llm=OpenAI(model_name="gpt-3.5-turbo", openai_api_key="your_api_key"),
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# 실행
agent.run("10 + 25는 얼마야?")

 

위 코드에서는 AI가 calculator 함수를 직접 사용하여 계산을 수행합니다.
즉, LLM이 직접 계산하는 것이 아니라, 필요한 작업을 적절한 도구에 위임하는 방식입니다.

 


 

4️⃣ 실전 예제: 웹 검색을 활용한 Q&A 시스템

LangChain의 에이전트를 활용하면 실시간 정보 검색 기능을 추가할 수 있습니다.
아래 코드는 SerpAPI를 사용하여 웹에서 정보를 검색한 후 답변하는 구조를 보여줍니다.

 

from langchain.agents import initialize_agent, AgentType
from langchain.tools import SerpAPIWrapper
from langchain.llms import OpenAI

# 웹 검색 도구
search = SerpAPIWrapper(serpapi_api_key="your_serpapi_key")

# 에이전트 생성
agent = initialize_agent(
    tools=[search],
    llm=OpenAI(model_name="gpt-3.5-turbo", openai_api_key="your_api_key"),
    agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# 실행
agent.run("오늘 서울 날씨 어때?")

 

이제 LangChain을 이용해 LLM이 웹 검색을 수행하고 최신 정보를 반영하여 응답할 수 있습니다.

 


5️⃣ LangChain의 활용 사례

LangChain을 사용하면 다양한 AI 애플리케이션을 개발할 수 있습니다.

챗봇 개발 → 사용자의 질문에 답하는 대화형 AI
문서 요약 및 분석 → 긴 문서를 요약하고 주요 내용을 추출
자동화된 연구 도구 → 웹 검색과 요약을 통해 연구 보조
AI 기반 데이터 분석 → AI가 데이터를 해석하고 인사이트 도출

 

 

🔥 결론

LangChain은 LLM을 활용한 강력한 AI 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크입니다.
특히 체인(Chain), 에이전트(Agent) 같은 구조를 활용하면 복잡한 문제도 효과적으로 해결할 수 있습니다.

 

즉, 단순한 텍스트 생성이 아니라, 검색·계산·API 호출 등의 외부 도구와 결합하여 보다 정교한 AI 애플리케이션을 구축하는 것이 핵심인 프레임워크라고 볼 수 있겠습니다.

Comments