티스토리 뷰

반응형

Ollama + CrewAI + FastAPI를 활용한 한국 주식 분석 블로그

1. 프로젝트 개요 및 환경 설정

이 글에서는 Ollama, CrewAI, FastAPI를 활용한 한국 주식 분석 블로그 프로젝트의 개요와 환경 설정 방법을 다룹니다.
프로젝트 목표 및 기대 효과
주요 기능 및 기술 스택
Conda 기반 환경 설정 및 필수 패키지 설치
FinanceDataReader를 활용한 데이터 수집 환경 설정
프로젝트 폴더 구조 및 코드 스타일 가이드


1.1 프로젝트 개요

1.1.1 프로젝트 목표 및 기대 효과

이 프로젝트는 Ollama(Deepseek 모델) + CrewAI를 활용하여 한국 주식 시장 분석 리포트를 자동 생성하고,
FastAPI 기반 블로그에서 사용자가 이를 조회할 수 있도록 하는 시스템을 구축하는 것을 목표로 합니다.

🔹 자동화된 한국 주식 시장 분석 → AI 에이전트를 활용하여 주식 데이터 분석 및 시각화
🔹 FastAPI 기반 웹 서비스 구축 → 사용자가 웹에서 분석 리포트를 확인할 수 있도록 API 및 프론트엔드 제공
🔹 FinanceDataReader를 활용한 한국 주식 데이터 수집 → 실시간 및 과거 주식 데이터 제공

1.1.2 주요 기능 및 기술 스택

구분 기술 스택

AI 모델 Ollama(Deepseek-r1:8b)
AI 에이전트 CrewAI
웹 프레임워크 FastAPI
데이터 수집 FinanceDataReader
데이터 분석 Pandas, Matplotlib
배포 환경 Docker, AWS/GCP/VPS

1.2 개발 환경 및 필수 도구 설치

이 프로젝트에서는 Python 3.12 및 Conda를 활용하여 개발 환경을 구성합니다.
아래 단계에 따라 필요한 패키지를 설치하고, 프로젝트의 기본 폴더 구조를 설정합니다.

1.2.1 Conda 가상환경 생성 및 패키지 설치

1) Conda 가상환경 생성

# Python 3.12 환경으로 Conda 가상환경 생성
conda create --name stock_analysis python=3.12

# 가상환경 활성화
conda activate stock_analysis

2) 필수 패키지 설치

# FastAPI 및 Uvicorn (API 서버)
conda install -c conda-forge fastapi uvicorn

# CrewAI 및 LangChain 연동
conda install -c conda-forge langchain
pip install crewai langchain_community crewai-tools

# 한국 주식 데이터 분석 관련 패키지
pip install finance-datareader
conda install -c conda-forge pandas matplotlib requests

# 환경 변수 관리
conda install -c conda-forge python-dotenv

1.3 Ollama 설치 및 모델 다운로드

Ollama는 로컬 LLM 실행 환경으로, 이 프로젝트에서는 Deepseek-r1:8b 모델을 사용합니다.

1.3.1 Ollama 설치

curl -fsSL https://ollama.com/install.sh | sh

1.3.2 Deepseek 모델 다운로드

ollama pull deepseek-r1:8b

1.3.3 Ollama 서버 실행 확인

ollama serve

1.4 FinanceDataReader를 활용한 데이터 수집 환경 설정

이 프로젝트에서는 FinanceDataReader 라이브러리를 활용하여 한국 주식 데이터를 수집합니다.

1.4.1 FinanceDataReader 설치 확인

pip install finance-datareader

1.4.2 간단한 주식 데이터 조회 테스트

아래 코드를 실행하여 FinanceDataReader가 정상적으로 작동하는지 확인합니다.

import FinanceDataReader as fdr

# 삼성전자(005930) 주식 데이터 가져오기
df = fdr.DataReader('005930', '2023-01-01', '2024-01-01')
print(df.head())

위 코드를 실행했을 때, 삼성전자(005930)의 주식 데이터가 출력되면 정상적으로 작동하는 것입니다.


1.5 프로젝트 폴더 구조 및 코드 스타일 가이드

이제 프로젝트의 기본 폴더 구조를 생성하고, 정리된 코드 스타일을 유지하기 위한 가이드를 설정합니다.

1.5.1 프로젝트 폴더 구조

# 프로젝트 폴더 생성
mkdir stock_analysis
cd stock_analysis

# 주요 폴더 및 파일 생성
mkdir -p src/stock_analysis/{config,tools,reports}
touch .gitignore README.md .env src/stock_analysis/__init__.py
touch src/stock_analysis/{main.py,crew.py,data_collector.py,api.py}

1.5.2 폴더 구조 설명

stock_analysis/
├── .gitignore
├── README.md
├── .env                  # 환경 변수 저장
├── src/
│   ├── stock_analysis/
│   │   ├── __init__.py
│   │   ├── main.py        # 메인 실행 파일
│   │   ├── crew.py        # CrewAI 실행 파일
│   │   ├── api.py         # FastAPI 서버 파일
│   │   ├── data_collector.py # FinanceDataReader를 활용한 데이터 수집
│   │   ├── config/        # CrewAI 설정 파일
│   │   │   ├── agents.yaml  # CrewAI 에이전트 설정
│   │   │   ├── tasks.yaml   # CrewAI 작업 설정
│   │   ├── tools/         # 추가 도구 및 기능
│   │   ├── reports/       # CrewAI가 생성한 보고서 저장

1.5.3 코드 스타일 가이드

  • PEP8 스타일 준수: black, flake8 등을 활용하여 코드 정리
  • 환경 변수 관리: .env 파일을 사용하여 API 키 및 중요 설정 저장
  • 모듈화된 코드 구성: 기능별로 파일을 분리하여 유지보수성을 높임

📌 정리 및 다음 단계

이제 프로젝트의 개발 환경이 완전히 설정되었습니다.

✅ Conda 가상환경 생성 및 필수 패키지 설치
✅ Ollama 모델 다운로드 및 설정
FinanceDataReader를 활용한 한국 주식 데이터 수집 환경 설정
✅ 프로젝트 폴더 구조 설계
✅ FastAPI 및 CrewAI 실행 준비 완료


🔜 다음 글 예고: 2. CrewAI를 활용한 한국 주식 분석 리포트 자동 생성

다음 글에서는 CrewAI를 활용한 AI 에이전트 및 작업 구성 방법을 다룹니다.

  • CrewAI 개념 및 기본 사용법
  • agents.yaml, tasks.yaml 설정
  • CrewAI를 활용한 주식 분석 자동화

CrewAI를 활용하여 자동화된 주식 분석을 진행하는 과정을 실습해보겠습니다! 🚀

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함
반응형