股票基本面分析工具,用于从 Tushare 获取财务数据、解析公告/调研文档、生成基本面分析报告。
- 财务数据采集:从 Tushare 获取股票基础信息、财务指标、利润表、资产负债表、现金流等
- 文档解析:支持 PDF 公告、HTML 网页、上证路演调研纪要的解析
- 事实抽取:使用 LLM 从文档中抽取结构化基本面事实(facts)
- 基本面分析:融合结构化数据和文档事实,生成基本面分析摘要
- Token 估算:估算文档抽取的 token 消耗和费用
fundamental-analysis/
├── app/
│ ├── core/
│ │ └── settings.py # 配置管理(从环境变量读取)
│ └── services/
│ ├── diagnose/
│ │ ├── llm_client.py # LLM 调用封装
│ │ └── market_data.py # Tushare 数据服务
│ └── strategy/
│ ├── fundamental_context.py # 基本面上下文采集
│ ├── extract_fundamentals_facts.py # 文档 facts 抽取
│ ├── test_fundamentals.py # 基本面分析入口
│ ├── estimate_fundamental_tokens.py # Token 费用估算
│ └── pdf_fact_extractor.py # PDF/HTML 文档解析
├── .env.example # 环境变量模板
├── .gitignore
├── README.md
└── requirements.txt
- 克隆仓库:
git clone https://github.com/yourusername/fundamental-analysis.git
cd fundamental-analysis- 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# 或 .venv\Scripts\activate # Windows- 安装依赖:
pip install -r requirements.txt- 配置环境变量:
cp .env.example .env
# 编辑 .env 文件,填入你的 API Key 和 Tushare Tokenfrom app.services.diagnose.market_data import get_tushare_service
service = get_tushare_service()
data = service.get_fundamentals_data("601133", "2026-05-20")
print(data)from app.services.strategy.extract_fundamentals_facts import FundamentalsFactExtractor
extractor = FundamentalsFactExtractor()
result = extractor.extract_recent_document_facts(
stock_code="601133",
date_str="2026-05-20",
stock_name="柏诚股份"
)
print(result)from app.services.strategy.test_fundamentals import FundamentalsTest
test = FundamentalsTest()
result = test.analyze_with_document_facts(
facts_file="path/to/facts.json",
stock_code="601133",
date_str="2026-05-20",
stock_name="柏诚股份"
)
print(result)python -m app.services.strategy.estimate_fundamental_tokens --stock 601133| 变量名 | 说明 | 默认值 |
|---|---|---|
OPENAI_API_KEY |
OpenAI/通义千问 API Key | - |
OPENAI_BASE_URL |
API 基础 URL | https://dashscope.aliyuncs.com/compatible-mode/v1 |
OPENAI_MODEL |
模型名称 | qwen3.6-plus |
TUSHARE_TOKEN |
Tushare API Token | - |
TUSHARE_DAILY_LIMIT |
每分钟最大 API 调用次数 | 200 |
LOG_LEVEL |
日志级别 | INFO |
- Python 3.9+
- tushare
- openai
- pandas
- python-dotenv
- PyMuPDF 或 pypdf(PDF 解析)
MIT License