오늘도 공부
Pydantic을 이용한 AI 주식 에이전트 개발 본문

Python을 활용한 AI 기반 주식 연구 에이전트 개발
1. AI 에이전트로 주식 연구 자동화하기
주식 투자에서 리스크를 최소화하고 수익을 극대화하려면 끊임없는 시장 조사, 기술적 분석, 최신 뉴스 확인, 재무제표 분석이 필요합니다. 하지만 이러한 작업은 상당한 시간과 노력이 요구됩니다.
이번 튜토리얼에서는 Python과 Pydantic AI를 활용하여 주식 연구를 자동화하는 AI 에이전트를 구축하는 방법을 소개합니다. 이 AI 에이전트는 시장 조사, 기술적 분석, 주식 추천을 수행하여 더 나은 투자 결정을 돕습니다. 초보자도 쉽게 따라 할 수 있으며, Python 기본 지식과 OpenAI, Gemini 또는 Anthropic API 액세스만 있으면 됩니다.
이번 예제에서는 OpenAI의 GPT-40 Mini 모델을 사용합니다. 비용이 저렴하면서도 높은 성능을 제공하기 때문입니다. 보다 강력한 모델을 활용하거나 여러 에이전트를 조합하여 다양한 역할을 수행하도록 설정하는 방법도 있지만, 이는 별도의 강의에서 다룰 예정입니다.
2. Pydantic AI란?
Pydantic AI는 AI 기반 애플리케이션을 쉽게 개발할 수 있도록 도와주는 경량 Python 프레임워크입니다.
- 강력한 **타입 안전성(type safety)**과 구조화된 데이터 처리 기능 제공
- AI 응답을 일관된 포맷으로 유지하여 실전에서 활용하기 쉽게 설계
- 의존성 주입, 모니터링, 디버깅 기능 내장으로 신뢰성과 유지보수성 향상
이를 활용하면 LLM을 보다 체계적으로 통합할 수 있으며, 생산 환경에서도 안정적인 AI 시스템을 구축할 수 있습니다.
3. 필요한 패키지 설치
우선, 아래 명령어를 실행하여 필요한 라이브러리를 설치합니다.
pip install pydantic-ai yfinance rich
- pydantic-ai: AI 에이전트 구축을 위한 핵심 라이브러리
- yfinance: Yahoo Finance 데이터를 가져오기 위한 라이브러리
- rich: 터미널 출력을 향상시키는 라이브러리 (선택사항)
4. Yahoo Finance API 연동
주식 데이터를 가져오기 위해 Yahoo Finance API를 활용합니다. API 키 없이도 사용이 가능하며, 다양한 재무 데이터를 조회할 수 있습니다.
1) YahooFinance.py 파일 생성
먼저, YahooFinance.py 파일을 만들고 필요한 패키지를 가져옵니다.
import json
import yfinance as yf
class YahooFinance:
@staticmethod
def get_current_price(ticker: str) -> str:
stock = yf.Ticker(ticker)
return str(stock.history(period="1d")["Close"][0])
위 함수는 특정 종목의 현재 주가를 가져오는 기능을 합니다. 주의할 점은 출력값을 반드시 문자열 형식으로 반환해야 한다는 것입니다.
2) 주요 함수 구현
다음은 주식 연구 에이전트가 사용할 주요 함수들입니다.
- get_current_price(): 현재 주가 가져오기
- get_company_info(): 회사 기본 정보 (이름, 산업, 시가총액 등)
- get_historical_prices(): 특정 기간 동안의 주가 히스토리
- get_stock_fundamentals(): 주식의 기본 재무 지표 (PER, PBR, 배당률 등)
- get_income_statement(): 회사의 손익계산서 조회
- get_key_financial_ratios(): 주요 재무 비율 (부채비율, ROE 등)
- get_analyst_recommendations(): 애널리스트 평가 및 목표주가
- get_company_news(): 최신 뉴스 및 보도자료 조회
- get_technical_indicators(): 이동 평균선, RSI 등 기술적 분석 데이터 제공
5. 주식 연구 에이전트 구축
1) StockResearcherAgent.py 파일 생성
이제 주식 연구 AI 에이전트를 만들어봅니다.
import asyncio
from pydantic_ai import Agent, ModelSettings
from rich.console import Console
from YahooFinance import YahooFinance
console = Console()
system_prompt = """
1. 주식 분석 보고서를 작성하세요.
2. 회사 개요, 재무 정보, 시장 동향을 포함하세요.
3. 기술적 분석을 수행하고, 최적의 투자 전략을 제안하세요.
"""
model_settings = ModelSettings(model="gpt-4o", temperature=0.2, max_tokens=8000)
agent = Agent(name="Stock Researcher", model_settings=model_settings, system_prompt=system_prompt, functions=[
YahooFinance.get_current_price,
YahooFinance.get_company_info,
YahooFinance.get_historical_prices,
YahooFinance.get_stock_fundamentals,
YahooFinance.get_income_statement,
YahooFinance.get_key_financial_ratios,
YahooFinance.get_analyst_recommendations,
YahooFinance.get_company_news,
YahooFinance.get_technical_indicators,
])
2) 대화형 인터페이스 구현
아래 코드로 사용자 입력을 받고 AI 에이전트가 실시간으로 응답하도록 설정합니다.
async def main():
while True:
user_input = console.input("[bold blue]사용자:[/] ")
if user_input.lower() in ["exit", "quit"]:
break
response = await agent.run_stream(user_input)
console.print("[bold green]AI:[/]", response)
asyncio.run(main())
이제 터미널에서 python StockResearcherAgent.py를 실행하면 AI 에이전트와 대화하며 주식 정보를 분석할 수 있습니다.
6. 테스트 및 활용 예제
1) 주식 가격 조회
사용자: 인텔과 홈디포의 주가를 알려줘.
AI: 인텔 현재 주가는 $26.9, 홈디포 주가는 $394.64입니다.
2) 투자 보고서 생성
사용자: 방금 조회한 두 기업의 투자 보고서를 작성해줘.
AI: 분석 중... [보고서 생성]
3) 최신 뉴스 분석
사용자: 이 회사들의 최신 뉴스를 요약해줘.
AI: [최신 뉴스 목록 제공]
7. 마무리
이제 Python과 AI를 활용하여 자동으로 주식 데이터를 분석하고 투자 결정을 돕는 AI 에이전트를 만들 수 있습니다.
🔥 확장 가능성
- 다른 모델 활용: Anthropic Claude 3.5, GPT-40 등 다양한 AI 모델 조합
- 포트폴리오 분석 기능 추가: 여러 종목을 조합하여 최적의 투자 전략 제안
- 자동 투자 트리거 설정: 특정 조건 충족 시 알림 또는 자동 거래 기능 구현
'AI' 카테고리의 다른 글
LangGraph AI 에이전트 시스템 구축 (0) | 2025.03.07 |
---|---|
파이썬과 OpenAI API로 AI 워크플로우 구현하기 (2) | 2025.03.07 |
그래프 RAG를 위한 Text-to-Cypher 에이전트 구현 (0) | 2025.03.07 |
AI SaaS 스타트업 아이디어를 찾는 핵심 전략 (1) | 2025.03.06 |
LangChain, LangGraph, LangFlow, LangSmith 비교 분석 (0) | 2025.03.06 |