diff --git a/README.md b/README.md index d325ff0..a9908c6 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,21 @@ -# AriStockAI +# 基于微服务架构的股票智能分析系统 -面向个人投资者的智能选股分析系统,采用微服务架构构建。 +## 项目概述 -## 服务一览 +本项目是面向个人投资者的股票智能分析系统,支持A股与美股市场,聚焦"智能分析+个性化推荐"功能。系统融合技术因子与金融文本情绪分析,为投资者提供辅助选股建议,解决中小投资者面对大量市场数据与资讯时难以快速识别优质个股的问题。 -各服务端口信息如下: -- data-service:提供 A 股 / 美股行情数据(Python),端口:8000 -- quant-service:量化因子计算服务(Python),端口:8001 -- emotion-service:情绪分析服务(Python),端口:8002 -- recommend-service:融合推荐服务(C#),端口:8003 -- user-service:用户管理服务(C#),端口:8004 -- frontend:前端交互界面(Vue.js),端口:80 -- gitea-webhook:监听 Gitea Webhook 进行持续部署,未在 docker-compose.yml 中明确端口 -- traefik:作为统一网关实现服务发现和路由,主入口端口:80,Dashboard 端口:8080 +## 服务模块 + +| 服务模块 | 功能描述 | 技术栈 | 端口 | +|---------|---------|-------|------| +| 📊 数据服务 | 调用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 | ## 使用方式 ```bash @@ -22,31 +25,54 @@ docker compose up --build ## 📦 技术架构 ![架构图](docs/architecture.svg) -**核心组件**: -- 服务发现:Consul -- API网关:Traefik with Let's Encrypt -- 数据存储:PostgreSQL + Redis +### 核心优势 +- **微服务拆分**:按功能解耦,独立部署,便于开发调试 +- **容器化部署**:Docker镜像打包,Docker Compose管理,跨平台支持 +- **服务治理**:Consul服务注册与健康检查,Traefik自动路由与负载均衡 +- **跨语言协同**:Python处理数据与分析,C#实现业务逻辑,Vue.js构建前端 +- **轻量化设计**:REST同步接口,避免消息队列部署负担 -**通信协议**: -- RESTful API(80% 服务) +### 核心组件 +- **服务发现**:Consul +- **API网关**:Traefik(支持HTTPS、限流) +- **数据存储**:PostgreSQL + Redis ## 🔧 环境变量 ```env CONSUL_HTTP_ADDR=consul:8500 -ALPHAVANTAGE_API_KEY=your_key +AKSHARE_PROXY=your_proxy # 如需要 +OPENAI_API_KEY=your_key # 情绪分析服务使用 ``` ## 📚 API 文档 -访问统一入口:`http://localhost/docs` +各服务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` ## 🛠 开发指南 +### 本地开发 ```bash -# Python 服务 +# Python服务(以数据服务为例) +cd services/data-service pip install -r requirements.txt -uvicorn app:app --reload +python app.py -# C# 服务 +# C#服务(以推荐服务为例) +cd services/recommend-service dotnet run + +# 前端服务 +cd services/frontend +npm install +npm run serve +``` + +### 容器部署 +```bash +docker-compose up --build -d ``` diff --git a/consul/config/dev/consul.json b/consul/config/dev/consul.json index 1e8f996..5a91a86 100644 --- a/consul/config/dev/consul.json +++ b/consul/config/dev/consul.json @@ -1,7 +1,7 @@ { "data_dir": "/consul/data", "acl": { - "default_policy": "deny", + "default_policy": "allow", "enabled": false }, "ui_config": {