Skip to content

Repository files navigation

股伴 AI (GuBan AI)

本地化 AI 股票分析平台 — 6 个 AI 分析师角色协同,为个人投资者提供专业级投资决策辅助。

Python FastAPI React TypeScript Tailwind CSS License


概览

股伴 AI 是一个本地化的 AI 股票分析平台,通过模拟专业投资团队的分工协作模式,让 6 个 AI 分析师角色各司其职,并行完成宏观研判、行业分析、财务评估、技术分析、舆情监控和风险控制,最终由系统整合分歧、组织辩论、生成综合投资报告。

核心理念

不替你做决定,但帮你看到更多维度。

  • 🔍 多视角覆盖:单一模型容易陷入认知盲区,多角色并行分析互相补充
  • ⚖️ 分歧可见:当 AI 分析师之间产生看多/看空分歧时,自动触发辩论机制
  • 🏠 数据本地化:数据获取和存储均在本地完成,你的持仓和自选股不会上传到第三方

功能特性

六大 AI 分析师

角色 职责 分析维度
🌍 宏观哨兵 宏观经济研判 货币政策、经济周期、市场流动性
🏭 行业研究员 产业链分析 行业景气度、竞争格局、政策影响
📊 财务分析师 基本面评估 盈利能力、成长性、估值水平
📈 技术分析师 量价形态识别 趋势判断、支撑阻力、技术指标
📰 舆情监控员 市场情绪感知 新闻情绪、社交媒体热度、机构评级
🛡️ 风控官 风险识别与对冲 下行风险、仓位建议、止损策略

核心功能

  • 多智能体协作分析:LangGraph 编排 6 个分析师节点,并行分析 → 分歧检测 → 辩论(最多 3 轮)→ 综合报告
  • 海龟趋势追踪选股:基于经典海龟交易法则的 A 股筛选引擎,TSS 综合评分
  • 组合管理:持仓导入(CSV 兼容中英文表头)、实时刷新价格、盈亏计算
  • 组合优化:均值-方差优化、风险平价、最大夏普比率等策略
  • 盯盘异动监控:每 5 分钟自动检查,价格波动/放量/仓位偏离触发飞书通知
  • 回测引擎:策略回测验证,支持自定义参数
  • 模拟交易:无风险练习交易策略
  • RAG 知识引擎:基于 ChromaDB 的本地向量检索,为分析提供知识支撑

数据源

  • AkShare:A 股实时行情、历史 K 线、基金净值
  • Tushare(可选):补充数据源

技术架构

┌─────────────────────────────────────────────────────┐
│                     前端 (React)                     │
│  TypeScript · Vite · Tailwind CSS · Recharts        │
│  Zustand (状态管理) · Framer Motion (动画)          │
│  5 页面: Home / Analysis / Portfolio / Reports /    │
│  Events / TurtleScanner / PoolList / Optimizer       │
└──────────────────────┬──────────────────────────────┘
                       │ REST API + WebSocket
┌──────────────────────▼──────────────────────────────┐
│                  后端 (FastAPI)                       │
│                                                       │
│  ┌─────────────────────────────────────────────┐    │
│  │           LangGraph 多智能体编排              │    │
│  │                                              │    │
│  │  collect_data                                │    │
│  │       │                                      │    │
│  │       ├─ 宏观 · 行业 · 财务 · 技术 · 舆情 · 风控  │
│  │       │   (6 节点并行分析)                     │    │
│  │       ▼                                      │    │
│  │  check_debate ──→ debate (最多3轮)           │    │
│  │       │                                      │    │
│  │       ▼                                      │    │
│  │  report (情景推演 + 组合顾问)                  │    │
│  └─────────────────────────────────────────────┘    │
│                                                       │
│  ┌──────────┐  ┌──────────┐  ┌──────────────────┐  │
│  │ LLM 网关 │  │ 数据提供层│  │ 盯盘 (APScheduler)│  │
│  │ DeepSeek │  │  AkShare │  │ 5分钟轮询 + 飞书  │  │
│  │ + 智谱AI │  │  Tushare │  │ Webhook 推送     │  │
│  └──────────┘  └──────────┘  └──────────────────┘  │
└──────────────────────┬──────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────┐
│                数据存储 (SQLite)                       │
│  持仓 · 自选 · 分析记录 · 风险事件 · 模拟交易          │
└─────────────────────────────────────────────────────┘

LLM 网关设计

  • 主力模型:DeepSeek(高性价比,≈2元/M tokens)
  • 备份模型:智谱 AI GLM(≈10元/M tokens)
  • 智能降级:主力失败自动切换备用
  • 成本控制:TTLCache 30 分钟缓存 + 月度预算限制
  • 费用追踪:每次调用记录 token 消耗和费用

快速开始

环境要求

组件 版本要求 推荐环境
Python 3.11+ WSL 2 + Ubuntu
Node.js 18+ Windows 原生
包管理器 pip / npm -

1. 克隆仓库

git clone https://github.com/studyingMan/guban-ai.git
cd guban-ai

2. 后端配置

cd backend

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

# 配置 API Key
cp .env.example .env
# 编辑 .env,至少填入 DEEPSEEK_API_KEY

3. 申请 API Key

服务 用途 申请地址
DeepSeek 主力 LLM(必填 platform.deepseek.com
智谱 AI 备用 LLM(可选) open.bigmodel.cn
Tushare 补充数据(可选) tushare.pro

4. 环境变量说明

# .env 文件
DEEPSEEK_API_KEY=your_deepseek_api_key_here   # 必填
ZHIPUAI_API_KEY=your_zhipuai_api_key_here     # 可选
TUSHARE_TOKEN=your_tushare_token_here         # 可选
FEISHU_WEBHOOK_URL=https://open.feishu.cn/... # 可选,盯盘通知
MONTHLY_BUDGET_CNY=30                         # 月度 LLM 费用上限
DATA_DIR=./data
DATABASE_URL=sqlite:///./data/guban.db

5. 启动

后端(WSL / Linux):

cd backend
source venv/bin/activate
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

前端(Windows 终端):

cd frontend
npm install
npm run dev

打开浏览器访问 http://localhost:5173,API 文档在 http://localhost:8000/docs

也可以使用项目根目录的一键启动脚本:

  • WSL:./back_up_start.sh + ./frontend_start.sh
  • Windows:启动后端.bat + 启动前端.bat

项目结构

guban-ai/
├── backend/                        # Python 后端
│   ├── main.py                     # FastAPI 入口 + 全部 REST API
│   ├── orchestrator.py             # LangGraph 多智能体编排
│   ├── llm_gateway.py              # DeepSeek + 智谱双模型网关
│   ├── data_provider.py            # AkShare A 股数据拉取
│   ├── models.py                   # SQLAlchemy ORM 模型 (SQLite)
│   ├── watchdog.py                 # APScheduler 盯盘异动监控
│   ├── task_manager.py             # 异步任务队列
│   ├── turtle_engine.py            # 海龟趋势追踪选股引擎
│   ├── tushare_provider.py         # Tushare 补充数据源
│   ├── backtest_engine.py          # 策略回测引擎
│   ├── paper_trading.py            # 模拟交易
│   ├── portfolio_construction.py   # 组合构建
│   ├── portfolio_optimizer.py      # 组合优化 (均值方差/风险平价)
│   ├── portfolio_orchestrator.py   # 组合管理编排
│   ├── screener_engine.py          # 股票筛选引擎
│   ├── rag_engine.py               # RAG 知识检索 (ChromaDB)
│   ├── agents/                     # AI 分析师定义
│   │   ├── base_agent.py           # Agent 基类
│   │   ├── macro_sentinel.py       # 宏观哨兵
│   │   ├── turtle_analyst.py       # 海龟分析师
│   │   ├── allocation_committee.py # 分配委员会
│   │   └── tool_definitions.py     # Agent 工具定义
│   ├── test_p0.py                  # 核心功能测试
│   ├── test_p0_inproc.py           # 进程内集成测试
│   ├── test_p2.py                  # 扩展功能测试
│   ├── requirements.txt            # Python 依赖
│   └── .env.example                # 环境变量模板
│
├── frontend/                       # React 前端
│   ├── src/
│   │   ├── App.tsx                 # 应用入口 + 路由
│   │   ├── main.tsx                # React 挂载点
│   │   ├── index.css               # 全局样式 (Tailwind)
│   │   ├── pages/                  # 页面组件
│   │   │   ├── Home.tsx            # 首页仪表盘
│   │   │   ├── Analysis.tsx        # AI 分析页
│   │   │   ├── Portfolio.tsx       # 持仓管理
│   │   │   ├── Reports.tsx         # 历史报告
│   │   │   ├── Events.tsx          # 风险事件日志
│   │   │   ├── TurtleScanner.tsx   # 海龟选股扫描
│   │   │   ├── PoolList.tsx        # 股票池列表
│   │   │   ├── PoolDetail.tsx      # 股票池详情
│   │   │   └── Optimizer.tsx       # 组合优化器
│   │   └── components/
│   │       └── TaskCenter.tsx      # 全局任务中心
│   ├── package.json
│   ├── vite.config.ts              # Vite 配置 (含 API 代理)
│   ├── tailwind.config.js
│   └── tsconfig.json
│
├── doc/                            # 项目文档
│   ├── AI理财师-技术方案.md
│   ├── 基金ETF筛选方法-海龟趋势追踪.md
│   ├── 股伴 AI 产品需求规格说明书(PRD)V1.ini
│   ├── 股伴 AI 需求调研报告(第一性原理版).ini
│   └── portfolio_import_sample.csv
│
├── docs/                           # 调研文档
│   └── 模拟交易功能调研报告.md
│
├── CLAUDE.md                       # Claude Code 项目指引
├── PROJECT_OVERVIEW.md             # 项目全景说明
├── 安装指南.md                      # 详细安装指南
├── WSL 完整安装指南.md              # WSL 环境配置
├── 项目文件清单.md                  # 文件结构清单
│
└── 启动脚本
    ├── back_up_start.sh            # WSL 后端启动
    ├── back_down_stop.sh           # WSL 后端停止
    ├── frontend_start.sh           # WSL 前端启动
    ├── 启动后端.bat                 # Windows 后端启动
    ├── 启动前端.bat                 # Windows 前端启动
    └── 关闭后端.bat                 # Windows 后端关闭

API 端点概览

方法 端点 说明
POST /api/analyze 同步股票分析(等待结果返回)
POST /api/analyze/async 异步股票分析(后台任务)
GET /api/tasks/{task_id} 查询异步任务进度
GET /api/portfolio 获取持仓列表
POST /api/portfolio/import-csv CSV 导入持仓
GET /api/turtle/signal/{code} 海龟信号查询
GET /api/turtle/scan 海龟全市场扫描
POST /api/screen 条件选股
GET /api/pools 股票池列表
POST /api/portfolio/optimize 组合优化
GET /api/events 风险事件列表
GET /api/reports 历史分析报告

完整 API 文档:启动后端后访问 http://localhost:8000/docs


路线图

  • 6 角色多智能体协同分析
  • LangGraph 辩论机制
  • 双模型网关 + 自动降级
  • 持仓管理 + CSV 导入
  • 海龟趋势追踪选股
  • 盯盘异动监控 + 飞书通知
  • 策略回测引擎
  • 模拟交易
  • RAG 知识引擎
  • 更多选股策略(多因子、动量等)
  • 移动端适配 (PWA)
  • 港股/美股数据支持
  • 社区策略分享

许可证

MIT License


免责声明

⚠️ 投资有风险,决策需谨慎。

股伴 AI 提供的所有分析内容仅供参考和学习,不构成任何投资建议。AI 分析结果可能存在误差或滞后,过往表现不代表未来收益。请结合自身情况独立判断,必要时咨询专业持牌投资顾问。

About

股伴 AI - 本地化 AI 股票分析平台,6 个 AI 分析师协同分析

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages