面向个人投资者的智能选股分析系统,采用微服务架构构建。
重构用户服务和推荐服务的Dockerfile,采用多阶段构建方式 - 添加构建阶段以减少最终镜像大小 - 分离SDK和运行时镜像以提高安全性 - 使用发布输出而非源代码作为运行时输入 |
||
|---|---|---|
| consul/config | ||
| docs | ||
| gitea-webhook | ||
| services | ||
| traefik | ||
| .gitignore | ||
| docker-compose.yml | ||
| README.md | ||
基于微服务架构的股票智能分析系统
项目概述
本项目是面向个人投资者的股票智能分析系统,支持A股与美股市场,聚焦"智能分析+个性化推荐"功能。系统融合技术因子与金融文本情绪分析,为投资者提供辅助选股建议,解决中小投资者面对大量市场数据与资讯时难以快速识别优质个股的问题。
服务模块
| 服务模块 | 功能描述 | 技术栈 | 端口 |
|---|---|---|---|
| 📊 数据服务 | 调用AkShare提供A股/美股行情、新闻数据,封装为REST API | Python | 8000 |
| 📉 量化分析服务 | 计算MACD、RSI、KDJ等技术指标因子,输出个股量化评分 | Python | 8001 |
| 🧠 情绪分析服务 | 使用GPT或FinBERT模型对金融新闻文本进行情绪识别与打分 | Python + LLM API | 8002 |
| 🧮 推荐服务 | 综合因子得分与用户偏好,输出个性化股票推荐及解释 | C# | 8003 |
| 👤 用户管理服务 | 用户账户管理、偏好设置、JWT权限控制 | C# | 8004 |
| 💻 前端交互服务 | Vue.js构建交互界面,ECharts可视化图表展示 | Vue.js + ECharts | 80 |
| 🔄 gitea-webhook | 监听Gitea Webhook实现持续部署 | Python | - |
| 🌐 traefik | API网关,提供路由、HTTPS、限流 | - | 80/8080 |
使用方式
docker compose up --build
📦 技术架构
核心优势
- 微服务拆分:按功能解耦,独立部署,便于开发调试
- 容器化部署:Docker镜像打包,Docker Compose管理,跨平台支持
- 服务治理:Consul服务注册与健康检查,Traefik自动路由与负载均衡
- 跨语言协同:Python处理数据与分析,C#实现业务逻辑,Vue.js构建前端
- 轻量化设计:REST同步接口,避免消息队列部署负担
核心组件
- 服务发现:Consul
- API网关:Traefik(支持HTTPS、限流)
- 数据存储:PostgreSQL + Redis
🔧 环境变量
CONSUL_HTTP_ADDR=consul:8500
AKSHARE_PROXY=your_proxy # 如需要
OPENAI_API_KEY=your_key # 情绪分析服务使用
📚 API 文档
各服务API文档访问:
- 数据服务:
http://localhost/api/data/docs - 量化服务:
http://localhost/api/quant/docs - 情绪服务:
http://localhost/api/emotion/docs - 推荐服务:
http://localhost/api/recommend/docs - 用户服务:
http://localhost/api/user/docs
🛠 开发指南
本地开发
# Python服务(以数据服务为例)
cd services/data-service
pip install -r requirements.txt
python app.py
# C#服务(以推荐服务为例)
cd services/recommend-service
dotnet run
# 前端服务
cd services/frontend
npm install
npm run serve
容器部署
docker-compose up --build -d
📄 许可
访问入口:http://localhost 或你的服务器域名(如 AriStockAI.com)