LangChain을 활용하면 단순한 언어 모델(LLM)을 넘어, 자율적으로 행동하는 AI 에이전트를 만들 수 있습니다.
이번 글에서는 Google Gemini Pro 모델과 ReAct 에이전트 프레임워크를 사용해,
웹 검색과 파이썬 코드 실행이 가능한 스마트 에이전트를 구축하는 방법을 설명하겠습니다. 🚀
📌 1. 환경 설정
먼저 필요한 라이브러리를 임포트하고 환경 변수를 설정합니다.
특히, SSL 인증을 비활성화하여 네트워크 요청에서 발생할 수 있는 보안 경고를 방지합니다.
import os
import ssl
from langchain import hub
from langchain_community.utilities.serpapi import SerpAPIWrapper
from langchain_experimental.tools import PythonREPLTool
from langchain_core.tools import Tool
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.agents import create_react_agent, AgentExecutor
# SSL 검증 비활성화
ssl._create_default_https_context = ssl._create_unverified_context
# 환경 변수 설정
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "agent/api-key.json"
os.environ["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY" # SerpAPI에서 무료 API 키 발급
os.environ['PYTHONHTTPSVERIFY'] = '0'
👉 SerpAPI는 검색 엔진을 활용하기 위해 필요한 API입니다.
SerpAPI 공식 사이트에서 무료 키를 발급받아 YOUR_SERPAPI_KEY를 대체하세요.
📌 2. 언어 모델(LLM) 설정
우리는 Gemini Pro 모델을 사용해 에이전트의 "두뇌" 역할을 담당하도록 설정합니다.
# Gemini Pro 모델을 활용한 LLM 초기화
llm = ChatGoogleGenerativeAI(model="models/gemini-1.5-pro")
💡 LangChain은 다양한 LLM을 지원하며, OpenAI의 GPT, Anthropic의 Claude, Google의 Gemini 등 다양한 모델을 연결할 수 있습니다.
📌 3. 에이전트 도구(Tools) 정의
에이전트가 단순한 텍스트 생성기에서 더 똑똑한 AI로 동작하려면, 외부 도구를 사용할 수 있어야 합니다.
이번 프로젝트에서는 웹 검색과 파이썬 코드 실행기를 도구로 추가하겠습니다.
# 에이전트가 사용할 도구 정의
tools = [
Tool(
name="웹검색",
func=SerpAPIWrapper().run,
description="최신 정보를 검색해야 할 때 사용하는 도구"
),
PythonREPLTool(
name="파이썬_실행기",
description="파이썬 코드를 실행해야 할 때 사용하는 도구"
)
]
🎯 도구의 역할
✅ 웹 검색: 검색 엔진을 사용해 최신 정보를 가져옵니다.
✅ 파이썬 실행기: 수학 계산, 데이터 분석, 문자열 처리 등을 수행할 수 있습니다.
📌 4. ReAct 기반 에이전트 생성
이제 LLM과 도구들을 조합하여 ReAct(Reasoning + Acting) 프레임워크 기반의 에이전트를 만듭니다.
# 프롬프트 템플릿 가져오기
prompt = hub.pull("hwchase17/react")
# ReAct 에이전트 생성
agent = create_react_agent(llm, tools, prompt)
# 에이전트 실행기(Agent Executor) 생성
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
🛠 ReAct 프레임워크란?
AI가 "생각(Reasoning) → 행동(Acting) → 피드백" 을 반복하는 방식으로 동작하는 프레임워크입니다.
예를 들어, AI가 "GDP 검색 후 원화 환산"을 요청받으면,
① 검색 → ② 환산 계산 → ③ 최종 결과 도출 의 과정을 스스로 수행합니다.
📌 5. 에이전트 테스트 🚀
이제 우리가 만든 에이전트가 실제로 어떻게 동작하는지 테스트해보겠습니다.
# 에이전트 테스트 함수
def test_agent():
# 1️⃣ 파이썬 코드 실행 테스트 - 짝수 출력
result1 = agent_executor.invoke(
{"input": "파이썬을 사용해서 1부터 10까지의 숫자 중 짝수만 출력해주세요"}
)
print("\n기본 계산 결과:", result1["output"])
# 2️⃣ 파이썬 코드 실행 테스트 - 통계 분석
result2 = agent_executor.invoke(
{"input": """다음 데이터의 평균과 표준편차를 계산해주세요:
[23, 45, 67, 89, 12, 34, 56, 78, 90, 11]"""}
)
print("\n통계 분석 결과:", result2["output"])
# 3️⃣ 문자열 처리 테스트 - 모음 개수 세기
result3 = agent_executor.invoke(
{"input": "문자열 'Hello, Python World!'에서 모든 모음(a,e,i,o,u)의 개수를 세어주세요"}
)
print("\n문자열 분석 결과:", result3["output"])
# 4️⃣ 복합 작업 테스트 - GDP 검색 후 환산
result4 = agent_executor.invoke(
{"input": "대한민국의 2023년 GDP가 얼마인지 검색하고, 이를 달러에서 원화로 환산해주세요 (1달러=1300원 기준)"}
)
print("\n복합 작업 결과:", result4["output"])
if __name__ == "__main__":
test_agent()
🔥 실행 결과 예시
기본 계산 결과: [2, 4, 6, 8, 10]
통계 분석 결과: 평균=50.5, 표준편차=28.4
문자열 분석 결과: 모음 개수 = 6
복합 작업 결과: 대한민국 2023년 GDP는 약 1.7조 달러이며, 원화로 환산하면 약 2210조 원입니다.
🌟 정리하자면...
✅ 단순한 LLM이 아니라, 직접 행동할 수 있는 AI를 만들었다!
✅ 웹 검색을 통해 실시간 정보를 얻고, 파이썬 실행기로 데이터를 처리할 수 있다!
✅ ReAct 프레임워크를 활용해 AI가 스스로 생각하고, 판단하고, 실행한다!
🚀 마무리
이번 글에서는 LangChain을 활용해 스스로 검색하고 계산하는 AI 에이전트를 만들었습니다.
이를 확장하면 "AI 자동 보고 시스템", "데이터 분석 도우미", "스마트 챗봇" 등 다양한 응용이 가능합니다!
✨ 앞으로의 확장 아이디어
- ✅ 추가적인 도구(Tool) 연결 → 데이터베이스 조회, API 호출 등
- ✅ 더 강력한 모델 적용 → GPT-4, Claude-3, Mixtral 등
- ✅ 자연어 처리 강화 → 복잡한 요청을 더 정확하게 분석
다음에도 더 흥미로운 LangChain 활용법을 소개하겠습니다! 🚀
궁금한 점은 댓글로 남겨주세요! 😊
'AI' 카테고리의 다른 글
[AI] Google Generative AI 모델 사용하기: 모델 리스트 조회 및 프롬프트 테스트 (0) | 2025.03.06 |
---|---|
[AI] 에이전트란 무엇인가? - (초보자를 위한 쉬운 설명) (0) | 2025.03.05 |