AI4Finance-Foundation/FinRobot
요약
FinRobot은 LLM, 강화학습, 정량적 분석을 통합하여 투자 조사와 알고리즘 트레이딩을 지원하는 금융 특화 AI 에이전트 플랫폼입니다. 멀티 에이전트 시스템을 통해 재무 데이터 수집부터 전문적인 리서치 보고서 생성까지의 전 과정을 자동화합니다.
핵심 포인트
- LLM 기반의 멀티 에이전트 시스템을 통한 금융 분석 자동화
- 재무 데이터 수집, 가치 평가, 리스크 분석 파이프라인 제공
- 전문적인 HTML/PDF 형태의 주식 리서치 보고서 생성 기능
- API 설정 및 원클릭 배포를 통한 로컬 환경 구축 지원
FinRobot은 금융 애플리케이션에 특화된 AI 에이전트 (AI Agent) 플랫폼으로, FinGPT의 단일 모델 접근 방식을 넘어섭니다. 이 플랫폼은 거대언어모델 (LLMs), 강화학습 (Reinforcement Learning), 정량적 분석 (Quantitative Analytics)을 포함한 다양한 AI 기술을 통합하여 투자 조사 자동화, 알고리즘 트레이딩 전략, 리스크 평가를 지원하며, 금융 산업을 위한 풀스택 지능형 솔루션을 제공합니다.
AI 에이전트 (AI Agent)의 개념: AI 에이전트란 거대언어모델 (LLMs)을 두뇌로 사용하여 환경을 인지하고, 의사결정을 내리며, 행동을 실행하는 지능형 엔티티 (Entity)입니다. 전통적인 인공지능과 달리, AI 에이전트는 독립적으로 사고하고 도구를 활용하여 주어진 목표를 점진적으로 달성하는 능력을 갖추고 있습니다.
금융 데이터를 가져오고, 멀티 에이전트 (Multi-agent) LLM 분석을 수행하며, 전문적인 주식 조사 보고서를 생성하는 로컬 배포형 AI 어시스턴트입니다.
1. API 키 설정
cp finrobot_equity/core/config/config.ini.example finrobot_equity/core/config/config.ini
config.ini 파일을 본인의 키로 수정하세요:
[API_KEYS]
fmp_api_key = YOUR_FMP_API_KEY # https://financialmodelingprep.com/developer
openai_api_key = YOUR_OPENAI_API_KEY # https://platform.openai.com/account/api-keys
...
2. 원클릭 배포 (웹 인터페이스)
chmod +x deploy.sh
./deploy.sh start
# 만약 deploy.sh가 작동하지 않는다면
...
http://127.0.0.1:8001에서 접속 가능합니다.
| 명령어 | 설명 |
|---|---|
./deploy.sh start | 웹 앱 시작 (의존성 자동 설치) |
./deploy.sh stop | 애플리케이션 중지 |
./deploy.sh restart | 애플리케이션 재시작 |
./deploy.sh status | 실행 상태 확인 |
3. 또는 커맨드 라인(CLI)을 통해 실행
# 1단계: 금융 분석
python finrobot_equity/core/src/generate_financial_analysis.py \
--company-ticker NVDA \
...
파이프라인 (Pipeline):
재무 데이터 가져오기 (Fetch Financial Data): FMP API를 통한 손익계산서 (income statements), 재무상태표 (balance sheets), 현금흐름표 (cash flows) 수집
처리 및 예측 (Process & Forecast): 3개년 재무 전망, 현금흐름할인법 (DCF) 가치 평가, 피어 그룹 비교 (peer comparison)
AI 에이전트 분석 (AI Agent Analysis): 8개의 특화된 에이전트가 투자 논거 (investment thesis), 리스크 평가 (risk assessment), 가치 평가 개요 (valuation overview) 등을 생성
보고서 생성 (Report Generation): 15개 이상의 차트 유형을 포함한 전문적인 다중 페이지 HTML/PDF 생성
- NVDA 주식 리서치 보고서
- MSFT 주식 리서치 보고서
- COP 주식 리서치 보고서
- TSLA 주식 리서치 보고서
- META 주식 리서치 보고서
전체 문서는 finrobot_equity/README.md를 참조하세요.
FinRobot-Intro.mp4
FinRobot Pro는 대규모 언어 모델 (LLMs) 및 AI 에이전트 (AI Agents)를 사용하여 전문적인 주식 분석을 자동화하는 AI 기반 주식 리서치 플랫폼입니다.
주요 기능:
자동 보고서 생성 (Automated Report Generation) – 전문적인 주식 리서치 보고서를 즉시 생성
재무 분석 (Financial Analysis) – 손익계산서, 재무상태표, 현금흐름표에 대한 심층 분석
가치 평가 분석 (Valuation Analysis) – P/E 비율, EV/EBITDA 배수 및 피어 그룹 비교
리스크 평가 (Risk Assessment) – 종합적인 투자 리스크 평가
FinRobot의 전체 프레임워크는 금융 AI 처리 및 애플리케이션의 특정 측면을 다루도록 설계된 네 개의 별도 계층으로 구성됩니다:
Financial AI Agents Layer (금융 AI 에이전트 계층): Financial AI Agents Layer는 이제 Financial Chain-of-Thought (CoT, 금융 사고의 연쇄) 프롬프팅을 포함하여, 복잡한 분석 및 의사결정 능력을 강화합니다. Market Forecasting Agents (시장 예측 에이전트), Document Analysis Agents (문서 분석 에이전트), 그리고 Trading Strategies Agents (거래 전략 에이전트)는 CoT를 활용하여 금융 과제를 논리적인 단계로 분해하며, 고도화된 알고리즘과 도메인 전문 지식을 변화하는 금융 시장의 역동성에 맞추어 정밀하고 실행 가능한 통찰력을 제공합니다.
Financial LLMs Algorithms Layer (금융 LLM 알고리즘 계층): Financial LLMs Algorithms Layer는 특정 도메인 및 글로벌 시장 분석에 맞게 특별히 튜닝된 모델을 구성하고 활용합니다.
LLMOps and DataOps Layers (LLMOps 및 DataOps 계층): LLMOps 계층은 다양한 최첨단 모델을 활용하여 특정 금융 작업에 가장 적합한 LLM을 선택하는 다중 소스 통합 전략을 구현합니다.
Multi-source LLM Foundation Models Layer (다중 소스 LLM 파운데이션 모델 계층): 이 기초 계층은 다양한 범용 및 특화 LLM의 플러그 앤 플레이 (plug-and-play) 기능을 지원합니다.
Perception (인지): 이 모듈은 시장 피드, 뉴스, 경제 지표로부터 멀티모달 (multimodal) 금융 데이터를 포착하고 해석하며, 정밀한 분석을 위해 데이터를 구조화하는 정교한 기술을 사용합니다.
Brain (두뇌): 핵심 처리 장치 역할을 하는 이 모듈은 LLM을 통해 Perception 모듈로부터 데이터를 인지하고, Financial Chain-of-Thought (CoT) 프로세스를 활용하여 구조화된 지침을 생성합니다.
Action (행동): 이 모듈은 Brain 모듈의 지침을 실행하며, 분석된 통찰력을 실행 가능한 결과로 변환하기 위해 도구를 적용합니다. 행동에는 거래, 포트폴리오 조정, 보고서 생성 또는 알림 전송 등이 포함되며, 이를 통해 금융 환경에 능동적으로 영향을 미칩니다.
Smart Scheduler는 모델의 다양성을 보장하고, 각 작업에 가장 적합한 LLM의 통합 및 선택을 최적화하는 데 핵심적인 역할을 합니다.
Director Agent (디렉터 에이전트): 이 구성 요소는 작업 할당 프로세스를 조율하며, 성능 지표와 특정 작업에 대한 적합성을 기반으로 에이전트에게 작업이 할당되도록 보장합니다.
Agent Registration (에이전트 등록): 시스템 내 에이전트의 등록을 관리하고 가용성을 추적하여, 효율적인 작업 할당 프로세스를 촉진합니다.
Agent Adaptor (에이전트 어댑터): 에이전트의 기능을 특정 작업에 맞게 조정하여, 성능을 향상시키고 전체 시스템 내에서의 통합을 강화합니다.
Task Manager (태스크 매니저): 다양한 금융 작업에 맞게 조정된 여러 일반 및 미세 조정된 (fine-tuned) LLM 기반 에이전트들을 관리하고 저장하며, 관련성과 효능을 보장하기 위해 주기적으로 업데이트됩니다.
메인 폴더인 finrobot은 agents, data_source, functional 세 개의 하위 폴더를 가집니다.
FinRobot
├── finrobot (메인 폴더)
│ ├── agents
...
1. (권장) 새로운 가상 환경 생성
conda create --name finrobot python=3.10
conda activate finrobot
2. 터미널을 사용하거나 수동으로 FinRobot 리포지토리(repo) 다운로드
git clone https://github.com/AI4Finance-Foundation/FinRobot.git
cd FinRobot
3. 소스 또는 PyPI에서 finrobot 및 종속성(dependencies) 설치
PyPI에서 최신 릴리스를 가져오세요.
pip install -U finrobot
또는 이 리포지토리에서 직접 설치하세요.
pip install -e .
4. OAI_CONFIG_LIST_sample 파일 수정
1) OAI_CONFIG_LIST_sample의 이름을 OAI_CONFIG_LIST로 변경
2) OAI_CONFIG_LIST 파일 내의 주석 처리된 네 줄을 제거
3) 본인의 OpenAI API 키 <your OpenAI API key here>를 추가
5. config_api_keys_sample 파일 수정
1) config_api_keys_sample의 이름을 config_api_keys로 변경
2) config_api_keys 파일 내의 주석을 제거
3) 본인의 finnhub-api "YOUR_FINNHUB_API_KEY"를 추가
...
6. 아래의 튜토리얼(tutorials) 또는 데모(demos) 탐색 시작:
# tutorials 폴더에서 다음 노트북들을 찾으세요
1) agent_annual_report.ipynb
2) agent_fingpt_forecaster.ipynb
...
기업의 티커 심볼 (ticker symbol), 최근의 기본 재무 제표 (financials), 그리고 시장 뉴스를 입력으로 받아 주가 움직임을 예측합니다.
- Import
import autogen
from finrobot.utils import get_current_date, register_keys_from_json
from finrobot.agents.workflow import SingleAssistant
- Config
# JSON 파일에서 OpenAI API 키를 읽어옵니다
llm_config = {
"config_list": autogen.config_list_from_json(
...
- Run
company = "NVDA"
assitant = SingleAssistant(
"Market_Analyst",
...
-
[Stanford University + Microsoft Research] Agent AI: Surveying the Horizons of Multimodal Interaction
-
[Stanford University] Generative Agents: Interactive Simulacra of Human Behavior
-
[Fudan NLP Group] The Rise and Potential of Large Language Model Based Agents: A Survey
-
[Fudan NLP Group] LLM-Agent-Paper-List
-
[Tsinghua University] Large Language Models Empowered Agent-based Modeling and Simulation: A Survey and Perspectives
-
[Renmin University] A Survey on Large Language Model-based Autonomous Agents
-
[Nanyang Technological University] FinAgent: A Multimodal Foundation Agent for Financial Trading: Tool-Augmented, Diversified, and Generalist
-
AutoGPT (183k stars): 자율형 AI 에이전트 (autonomous AI agent) 플랫폼.
-
Dify (134k stars): 워크플로우 오케스트레이션 (workflow orchestration) 및 RAG를 지원하는 LLM 앱 개발 플랫폼.
-
LangChain (130k stars): 문맥 인식 (context-aware) LLM 애플리케이션 구축을 위한 프레임워크.
-
MetaGPT (65.6k stars): 역할 기반 협업 (role-based collaboration)을 지원하는 멀티 에이전트 (multi-agent) 프레임워크.
-
AutoGen (56k stars): 도구 및 인간과의 상호작용을 포함하는 멀티 에이전트 LLM 애플리케이션 프레임워크.
-
CrewAI (46.6k stars): 협업형 AI 에이전트들을 오케스트레이션하기 위한 프레임워크.
-
ChatDev (31.7k stars): 소프트웨어 개발 작업을 위한 멀티 에이전트 프레임워크.
-
FastGPT (27.4k stars): 워크플로우 지원 기능을 갖춘 지식 기반 LLM 플랫폼.
-
Langfuse (23.4k stars): 오픈 소스 LLM 관측성 (observability) 및 평가 플랫폼.
-
BabyAGI (22.2k stars): 작업 중심의 실험적 자율 에이전트 (autonomous agent) 프레임워크.
-
SuperAGI (17.3k stars): 개발자 중심의 자율 에이전트 프레임워크.
-
CAMEL (16.4k stars): 협력적이고 의사소통하는 AI 에이전트를 위한 프레임워크.
-
Bisheng (11.2k stars): 기업용 오픈 소스 LLM 애플리케이션 플랫폼.
@article{yang2024finrobot,
title={FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models},
author={Yang, Hongyang and Zhang, Boyu and Wang, Neng and Guo, Cheng and Zhang, Xiaoli and Lin, Likun and Wang, Junlin and Zhou, Tianyu and Guan, Mao and Zhang, Runjia and others},
...
면책 조항 (Disclaimer): 여기에 제공된 코드와 문서는 Apache-2.0 라이선스 하에 공개됩니다. 이는 금융 자문이나 실제 거래를 위한 권고로 해석되어서는 안 됩니다. 어떠한 거래나 투자 행동을 하기 전에 주의를 기울이고 자격을 갖춘 금융 전문가와 상담하는 것이 필수적입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Jupyter Notebook (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기