Development
LangChain for Beginners: Build Your First AI Agent
LangChain is the framework that powers most production AI applications. This step-by-step guide shows you how to build a real AI agent using LangChain.
2026-06-2518 min readLearnGeni AI Academy
LangChain 입문: 첫 AI 에이전트 만들기
LangChain은 프로덕션 환경에서 AI 애플리케이션을 구축하기 위한 가장 인기 있는 프레임워크입니다.
LangChain이란?
LangChain은 LLM을 사용한 애플리케이션 구축을 단순화하는 오픈소스 Python(및 JavaScript) 프레임워크입니다.
해결하는 문제:
- 대화 간 AI 메모리 관리
- 문서와 데이터베이스에 AI 연결
- 도구(웹 검색, 계산기, API)를 가진 에이전트 구축
설치
pip install langchain langchain-openai langchain-community chromadb python-dotenv
첫 번째 체인
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
model = ChatOpenAI(model="gpt-4o-mini", temperature=0)
prompt = ChatPromptTemplate.from_messages([
("system", "당신은 도움이 되는 AI 어시스턴트입니다."),
("user", "{question}")
])
chain = prompt | model | StrOutputParser()
result = chain.invoke({"question": "LangChain이 무엇인가요?"})
print(result)
RAG 시스템: 문서에서 AI가 답변
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_core.documents import Document
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
documents = [
Document(page_content="LearnGeni는 각 $5의 AI 가이드 30개를 제공합니다."),
Document(page_content="가이드에는 LangChain, n8n, 프롬프트 엔지니어링 등이 포함됩니다."),
]
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents, embeddings)
retriever = vectorstore.as_retriever()
prompt = ChatPromptTemplate.from_template("""
컨텍스트를 바탕으로 답변해 주세요: {context}
질문: {question}
""")
model = ChatOpenAI(model="gpt-4o-mini")
chain = ({"context": retriever, "question": RunnablePassthrough()} | prompt | model)
result = chain.invoke("LearnGeni 가이드는 얼마인가요?")
print(result.content)
메모리를 가진 대화
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
memory = ConversationBufferMemory()
conversation = ConversationChain(
llm=ChatOpenAI(model="gpt-4o-mini"),
memory=memory
)
print(conversation.predict(input="안녕하세요! 제 이름은 김민수입니다."))
print(conversation.predict(input="제 이름을 기억하시나요?"))
# → "네, 김민수 씨시군요!"라고 응답
도구를 가진 에이전트
from langchain.agents import create_openai_functions_agent, AgentExecutor
from langchain.tools import Tool
from langchain_openai import ChatOpenAI
def search_web(query: str) -> str:
"""웹 검색을 실행합니다"""
return f"'{query}'에 대한 검색 결과..."
tools = [
Tool(
name="web_search",
func=search_web,
description="최신 정보를 검색해야 할 때 사용"
)
]
llm = ChatOpenAI(model="gpt-4o-mini")
# 에이전트 설정 후 사용
executor = AgentExecutor(agent=agent, tools=tools)
result = executor.invoke({"input": "오늘 서울 날씨는?"})
LangChain 주요 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| LLMs/Chat Models | AI 모델과의 연결 |
| Prompts | 템플릿 관리 |
| Chains | 처리 흐름 구축 |
| Memory | 대화 이력 유지 |
| Retrievers | 문서 검색 |
| Agents | 자율적 의사결정 |
| Tools | 외부 기능과 연계 |
실습 프로젝트: 한국어 고객 지원 봇
# 제품 FAQ 데이터베이스를 가진 지원 봇 구축
faq_documents = [
Document(page_content="반품은 구매 후 30일 이내에 가능합니다."),
Document(page_content="배송비는 5만원 이상 주문 시 무료입니다."),
Document(page_content="고객 지원은 평일 오전 9시~오후 6시에 운영됩니다."),
]
vectorstore = Chroma.from_documents(faq_documents, OpenAIEmbeddings())
support_prompt = ChatPromptTemplate.from_template("""
당신은 친절한 고객 지원 담당자입니다.
다음 FAQ 정보를 참고하여 답변하세요:
{context}
고객 질문: {question}
""")
chain = ({"context": vectorstore.as_retriever(), "question": RunnablePassthrough()}
| support_prompt
| ChatOpenAI(model="gpt-4o-mini"))
print(chain.invoke("환불이 가능한가요?").content)
LangChain을 기초부터 응용까지 배우고 싶으신가요? LearnGeni의 완전 가이드에는 실제 프로젝트가 포함되어 있습니다. 모든 가이드 보기.
G
Earn Your International AI Certificate
This article is part of the LearnGeni AI Mastery Program — 30 comprehensive guides in 50+ languages. Complete all 30 and earn a certificate backed by WhatsGeni (Official Meta AI Partner), recognized in 50+ countries.
🌍
50+ Languages
Learn in your native language
🏆
Official Certificate
Backed by Meta AI Partner
💡
30 Guides
$5 each or $50 for the full bundle