一个基于 AI 的智能股票投资分析平台,整合实时行情数据、搜索引擎和大型语言模型,提供专业的投资建议和市场分析。
- 实时行情数据 - 通过 AKShare 获取 A 股实时行情、财务数据和 K 线图表
- AI 驱动分析 - 基于 MiniMax 大型语言模型的智能股票与市场分析
- 多源搜索 - 支持 Google、百度和 MiniMax 搜索引擎获取最新资讯
- 批量处理 - 支持单只股票深度分析、批量分析和整体市场分析
- 风险偏好定制 - 低、中、高三种风险偏好设置,生成个性化投资建议
- 流式响应 - SSE 流式输出,实时展示分析进度
- Web 界面 - 基于 React + Ant Design 的现代化前端界面
- RESTful API - FastAPI 后端,提供完整的 API 服务
┌─────────────────────────────────────────────────────────────────────┐
│ 前端 (React) │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Dashboard │ │ Quotes │ │ Analysis │ │ Batch │ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
│ └──────────────┴──────────────┴──────────────┘ │
│ ┌─────────────────────┐ │
│ │ API Client │ │
│ └──────────┬──────────┘ │
└─────────────────────────────────────┼───────────────────────────────┘
│ HTTPS/JSON
│
┌─────────────────────────────────────┼───────────────────────────────┐
│ 后端 (FastAPI) │
│ ┌─────────────┐ │
│ │ CORS + │ │
│ │ Middleware │ │
│ └──────┬──────┘ │
│ ┌──────────────────────────────┼────────────────────────────┐ │
│ │ │ │ │
│ ┌──┴───┐ ┌───────────┐ ┌───────┴───────┐ ┌─────────────┐ │ │
│ │行情数据│ │股票分析 │ │ 批量分析 │ │ 任务管理 │ │ │
│ │ API │ │ API │ │ API │ │ API │ │ │
│ └───┬───┘ └────┬─────┘ └───────┬───────┘ └──────┬──────┘ │ │
│ │ │ │ │ │ │
└──────┼───────────┼────────────────┼─────────────────┼─────────┼──┘
│ │ │ │ │
┌──────┼───────────┼────────────────┼─────────────────┼─────────┼──┐
│ ┌───▼───┐ ┌────▼─────┐ ┌───────▼───────┐ ┌─────▼─────┐ │ │
│ │AKShare│ │StockAgent│ │LLMProcessor │ │DataProvider│ │ │
│ └───────┘ └──────────┘ └───────┬───────┘ └───────────┘ │ │
│ │ │ │
│ ┌───────────┴───────────┐ │ │
│ │ Search Engine │ │ │
│ │ (Google/Baidu/MiniMax)│ │ │
│ └───────────┬───────────┘ │ │
│ │ │ │
└──────────────────────────────────────┼──────────────────────────┼──┘
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ MiniMax API │ │ AKShare API │
│ (LLM + Search) │ │ (股票数据源) │
└─────────────────┘ └─────────────────┘
- Python 3.10+
- Node.js 18+
- MiniMax API Key
git clone https://github.com/your-org/stocks.git
cd stocks# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txtcd web
npm install复制 .env.example 到 .env 并修改配置:
cp .env.example .env.env 文件内容:
# MiniMax LLM 配置
LLM_API_KEY=your_api_key_here
LLM_BASE_URL=https://api.minimaxi.com/v1
LLM_MODEL=MiniMax-M2.7-highspeed启动后端:
# 方式一:直接运行
python run_api.py
# 方式二:使用 uvicorn
uvicorn src.api.routes:create_app --reload --host 0.0.0.0 --port 8000启动前端:
cd web
npm run devstocks/
├── data/ # 数据存储目录
├── docs/ # 文档目录
│ ├── architecture.md # 系统架构文档
│ ├── deployment.md # 部署文档
│ └── ...
├── examples/ # 示例代码
├── logs/ # 日志文件
├── results/ # 分析结果
├── src/ # 后端源代码
│ ├── api/ # API 模块
│ │ ├── middleware.py # 中间件(CORS、日志)
│ │ ├── routes.py # 路由定义
│ │ └── schemas.py # Pydantic 模型
│ ├── config.py # 配置文件
│ ├── crawler.py # 网页爬虫
│ ├── data_provider.py # AKShare 数据封装
│ ├── llm_processor.py # LLM 处理器
│ ├── logging_config.py # 日志配置
│ ├── main.py # CLI 入口
│ ├── prompts.py # 提示词模板
│ ├── search_engine.py # 搜索引擎
│ ├── stock_agent.py # 核心分析 Agent
│ └── utils.py # 工具函数
├── tests/ # 测试用例
├── web/ # 前端源代码
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ │ ├── Dashboard.tsx
│ │ │ ├── Quotes.tsx
│ │ │ └── BatchAnalysis.tsx
│ │ ├── services/ # API 服务
│ │ │ └── api.ts
│ │ ├── App.tsx
│ │ └── main.tsx
│ ├── index.html
│ ├── package.json
│ └── vite.config.ts
├── .env.example # 环境变量示例
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── main.py
├── pyproject.toml
├── README.md
├── requirements.txt
├── run.py
├── run_api.py
└── setup.py
| 模块 | 方法 | 路径 | 描述 |
|---|---|---|---|
| 健康检查 | GET | /api/v1/health | 服务健康状态 |
| 行情数据 | GET | /api/v1/quote/{stock_code} | 单只股票实时行情 |
| 行情数据 | GET | /api/v1/quotes/realtime | 批量实时行情 |
| 行情数据 | GET | /api/v1/financials/{stock_code} | 财务数据 |
| 行情数据 | GET | /api/v1/kline/{stock_code} | K 线数据 |
| 股票分析 | POST | /api/v1/analyze/stock | 单股分析 |
| 股票分析 | POST | /api/v1/analyze/stock/stream | 单股分析(流式) |
| 股票分析 | POST | /api/v1/analyze/market | 市场分析 |
| 股票分析 | POST | /api/v1/analyze/market/stream | 市场分析(流式) |
| 股票分析 | POST | /api/v1/analyze/batch | 批量分析 |
| 任务管理 | GET | /api/v1/tasks/{task_id} | 获取任务状态 |
完整 API 文档请访问:http://localhost:8000/docs
- FastAPI - 高性能 Web 框架
- Pydantic - 数据验证与序列化
- AKShare - A 股金融数据接口
- MiniMax API - 大型语言模型与搜索服务
- Uvicorn - ASGI 服务器
- Trafilatura - 网页内容提取
- Pandas - 数据处理
- React 18 - UI 框架
- TypeScript - 类型安全
- Ant Design 5 - UI 组件库
- Vite - 构建工具
- Axios - HTTP 客戶端
- React Router - 路由管理
- Recharts - 图表库
- React Markdown - Markdown 渲染
详细开发文档请参考:
# 后端测试
pytest tests/ -v
# 前端测试(Playwright E2E)
cd web
npm run test欢迎提交 Pull Request!请参考 CONTRIBUTING.md
MIT License - 详见 LICENSE 文件
本工具仅供研究和参考,不构成投资建议。投资有风险,决策需谨慎。