4.3 KiB
4.3 KiB
A股分析推荐 Agent
基于资金驱动的四层漏斗模型,盘中实时分析推荐 A 股。支持趋势突破/缩量回踩/启动型三种策略,结合 LLM (DeepSeek) 生成个股分析。
技术栈
- Backend: Python 3.10+ / FastAPI / SQLAlchemy / Tushare / APScheduler
- Frontend: Next.js 14 / React 18 / TypeScript / Tailwind CSS / ECharts
- Database: SQLite (aiosqlite)
- LLM: DeepSeek API(可选,用于 AI 分析)
前置条件
- Python 3.10+
- Node.js 18+
- Tushare Pro Token(用于获取 A 股行情数据)
- DeepSeek API Key(可选,不配置则跳过 AI 分析功能)
快速开始
1. 克隆项目
git clone <repo-url>
cd astock-agent
2. 启动 Backend
cd backend
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
编辑 backend/.env,填入你的 Token:
ASTOCK_TUSHARE_TOKEN=你的Tushare Token
ASTOCK_DEBUG=true
# 可选:配置后启用 AI 分析功能
ASTOCK_DEEPSEEK_API_KEY=你的DeepSeek API Key
启动服务:
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
首次启动会自动创建 SQLite 数据库和默认管理员账户:
- 用户名:
admin - 密码:
admin123
3. 启动 Frontend
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
前端默认运行在 http://localhost:3002,通过 Next.js rewrites 代理 API 请求到后端 localhost:8000。
4. 访问
浏览器打开 http://localhost:3002 ,使用默认管理员账户登录。
环境变量说明
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
ASTOCK_TUSHARE_TOKEN |
是 | - | Tushare Pro 数据接口 Token |
ASTOCK_DEBUG |
否 | false |
开启调试日志 |
ASTOCK_DEEPSEEK_API_KEY |
否 | - | DeepSeek API Key,配置后启用 AI 分析 |
ASTOCK_DEEPSEEK_BASE_URL |
否 | https://api.deepseek.com/v1 |
DeepSeek API 地址 |
ASTOCK_FRONTEND_URL |
否 | http://localhost:3002 |
前端地址(CORS 白名单) |
ASTOCK_JWT_SECRET |
否 | change-me-in-production |
JWT 签名密钥,生产环境务必修改 |
ASTOCK_ADMIN_USERNAME |
否 | admin |
默认管理员用户名 |
ASTOCK_ADMIN_PASSWORD |
否 | admin123 |
默认管理员密码 |
完整配置项见 backend/app/config.py。
项目结构
astock-agent/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI 入口
│ │ ├── config.py # 配置管理
│ │ ├── api/ # API 路由(行情、板块、推荐、个股、聊天、认证)
│ │ ├── analysis/ # 分析引擎(信号检测、板块扫描、选股)
│ │ ├── core/ # 认证、缓存等核心模块
│ │ ├── data/ # 数据层(Tushare、腾讯行情客户端)
│ │ ├── db/ # 数据库表定义与初始化
│ │ ├── engine/ # 调度器(定时扫描任务)
│ │ └── llm/ # LLM 集成(DeepSeek)
│ ├── requirements.txt
│ ├── .env.example
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js 页面(总览、推荐、板块、个股、对话)
│ │ ├── components/ # 组件(图表、卡片、导航等)
│ │ ├── hooks/ # 自定义 Hooks
│ │ └── lib/ # 工具函数、API 客户端
│ ├── tailwind.config.ts
│ ├── next.config.js
│ └── package.json
└── .gitignore
构建生产版本
# Backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000
# Frontend
cd frontend
npm run build
npm run start
注意事项
- 首次启动后,系统会在 A 股交易时段(9:30-11:30, 13:00-15:00)自动执行扫描任务
- 也可以在推荐列表页手动点击「立即扫描」触发
- 数据库为 SQLite,数据文件
astock.db自动生成在backend/目录下 - Tushare API 有请求频率限制,请勿过于频繁地手动触发扫描