stock-monitor/CLAUDE.md
ycg 569c1c8813 重构股票监控系统:数据库架构升级与功能完善
- 重构数据访问层:引入DAO模式,支持MySQL/SQLite双数据库
- 新增数据库架构:完整的股票数据、AI分析、自选股管理表结构
- 升级AI分析服务:集成豆包大模型,支持多维度分析
- 优化API路由:分离市场数据API,提供更清晰的接口设计
- 完善项目文档:添加数据库迁移指南、新功能指南等
- 清理冗余文件:删除旧的缓存文件和无用配置
- 新增调度器:支持定时任务和数据自动更新
- 改进前端模板:简化的股票展示页面

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 15:44:25 +08:00

155 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 常用命令
### 开发环境
```bash
# 安装依赖
pip install -r requirements.txt
# 启动开发服务器
python run.py
# 初始化数据库(首次使用)
python init_database.py
# 数据迁移从JSON文件迁移到数据库
python migrate_to_database.py
```
### 生产环境部署
```bash
# Docker构建和运行
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs stock-monitor
```
### 测试和调试
```bash
# 查看API文档
# 访问 http://localhost:8000/docs
# 测试数据库连接
python -c "from app.dao import StockDAO; print('数据库连接成功')"
# 测试Tushare API
python -c "import tushare as ts; ts.set_token('your_token'); print(ts.pro_api().trade_cal(exchange='SSE', start_date='20240101', end_date='20240105'))"
```
## 核心架构
### 技术栈
- **后端**: FastAPI + SQLAlchemy + MySQL/SQLite
- **前端**: HTML5 + CSS3 + JavaScript + Bootstrap + ECharts
- **数据源**: Tushare API (股票数据) + 豆包大模型 (AI分析)
- **部署**: Docker + Uvicorn
### 项目结构
```
stock-monitor/
├── app/ # 应用主目录
│ ├── api/ # API路由层
│ │ ├── stock_routes.py # 股票相关API
│ │ └── market_routes.py # 市场数据API
│ ├── services/ # 业务逻辑层
│ │ ├── stock_service_db.py # 股票数据服务
│ │ ├── ai_analysis_service_db.py # AI分析服务
│ │ ├── market_data_service.py # 市场数据服务
│ │ └── kline_service.py # K线数据服务
│ ├── dao/ # 数据访问层 (DAO模式)
│ │ ├── base_dao.py # 基础DAO类
│ │ ├── stock_dao.py # 股票数据DAO
│ │ ├── watchlist_dao.py # 自选股DAO
│ │ ├── ai_analysis_dao.py # AI分析DAO
│ │ └── config_dao.py # 配置DAO
│ ├── models/ # 数据模型
│ └── templates/ # HTML模板
├── config.template.py # 配置文件模板
├── database_schema.sql # MySQL数据库表结构
├── init_database.py # 数据库初始化脚本
└── run.py # 应用启动脚本
```
### 数据架构
- **MySQL生产数据库**: 包含stocks、stock_data、watchlist、ai_analysis等核心表
- **SQLite开发数据库**: 用于本地开发和测试
- **JSON缓存**: 历史数据使用JSON文件缓存
- **DAO模式**: 统一的数据访问接口,便于数据库切换
### 核心功能模块
#### 1. 股票数据管理 (app/services/stock_service_db.py)
- 从Tushare API获取实时股票数据
- 数据缓存机制(优先从数据库读取)
- 支持强制刷新和增量更新
#### 2. AI智能分析 (app/services/ai_analysis_service_db.py)
- 集成豆包大模型进行股票分析
- 支持多维度分析:价值投资、道德经视角、投资大师分析
- 分析结果持久化存储
#### 3. 自选股管理 (app/services/watchlist_service.py)
- 添加/删除自选股票
- 设置市值预警范围
- 目标市值监控
#### 4. 市场数据服务 (app/services/market_data_service.py)
- 沪深指数实时行情
- K线图表数据
- 板块涨跌排行
### API设计
- RESTful API设计
- 自动生成API文档 (`/docs`)
- 统一错误处理和响应格式
- 支持CORS跨域请求
### 配置管理
- **Tushare Token**: 需要在config.py中配置
- **豆包大模型API**: 需要配置API Key和模型ID
- **数据库配置**: 支持MySQL和SQLite切换
- **环境变量**: 支持通过环境变量覆盖配置
## 重要说明
### 数据获取限制
- Tushare API有调用频率限制建议适当控制请求频率
- 免费账户每分钟最多调用200次
- 生产环境建议使用付费套餐
### AI分析成本
- 豆包大模型按量计费,有免费额度
- 超出免费额度后按实际使用量收费
- 建议合理控制AI分析次数
### 数据免责声明
- 项目提供的股票数据仅供参考,不构成投资建议
- 股票投资有风险,入市需谨慎
- AI分析结果基于公开数据和模型计算
### 开发建议
- 首次使用需要先执行`python init_database.py`初始化数据库
- 开发时可使用SQLite数据库生产环境推荐MySQL
- 建议监控股票数量不超过30只以保证性能
- 定时刷新间隔建议60秒以上
## 常见问题
### Q: Tushare Token如何获取
A: 访问 https://tushare.pro 注册账号并获取API Token
### Q: 豆包大模型API如何配置
A: 访问火山引擎控制台创建应用获取API Key和模型接入点ID
### Q: 如何切换数据库?
A: 修改config.py中的数据库连接配置重新执行init_database.py
### Q: Docker部署端口冲突
A: 修改docker-compose.yml中的端口映射如将"15348:8000"改为其他端口