Go to file
2026-04-28 11:37:21 +08:00
backend 1 2026-04-28 11:37:21 +08:00
frontend 1 2026-04-24 09:28:45 +08:00
.gitignore 1 2026-04-13 14:32:41 +08:00
astock.db first commit 2026-04-07 20:51:00 +08:00
docker-compose.yml 1 2026-04-16 20:13:45 +08:00
README.md 1 2026-04-13 14:32:41 +08:00

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 有请求频率限制,请勿过于频繁地手动触发扫描