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

4.9 KiB
Raw Permalink Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

常用命令

开发环境

# 安装依赖
pip install -r requirements.txt

# 启动开发服务器
python run.py

# 初始化数据库(首次使用)
python init_database.py

# 数据迁移从JSON文件迁移到数据库
python migrate_to_database.py

生产环境部署

# Docker构建和运行
docker-compose up -d

# 查看运行状态
docker-compose ps

# 查看日志
docker-compose logs stock-monitor

测试和调试

# 查看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"改为其他端口