FinScope Pro是一套面向量化研究与投资分析的 AI 工作台。用户可以用自然语言创建研究任务,让数据智能体结合行情、财务指标与分析工具,完成个股诊断、基本面分析、资产对比、指数技术分析、组合风险评估和策略回测,并在统一界面中查看研究过程与结果。
本项目提供的是研究与分析工具,生成内容不构成任何投资建议。市场数据可能存在延迟或缺失,使用结果前请独立核验。
| 模块 | 主要用途 |
|---|---|
| AI 研究工作台 | 用自然语言创建任务,查看智能体思考过程、工具调用与研究结果 |
| 策略平台 | 查看股票池、K 线、板块资金流、因子目录与量化基础数据 |
| 研究报告 | 管理研究报告、洞察与自动化研究任务 |
| 数据服务 | 提供实时行情、历史 K 线、基本面、筛选与回测接口 |
| 技能管理 | 管理和版本化智能体的专业研究技能 |
| 评测平台 | 维护评测集、评测队列与模型效果验证 |
| 运维与可观测性 | 查看服务状态,并可选接入 Loki、Grafana 和 Alloy |
浏览器 / Electron 桌面端
│
▼
Next.js 16 + React 19
│
┌─────┴──────────┐
▼ ▼
PI Agent 行情数据 API
│ (FastAPI)
└─────┬──────────┘
▼
TimescaleDB / Redis / ClickHouse(可选)
| 层级 | 技术 |
|---|---|
| Web | Next.js 16、React 19、TypeScript、Tailwind CSS |
| 智能体 | PI Agent、可配置模型供应商 |
| 行情后端 | Python 3.14、FastAPI、AkShare、BaoStock |
| 数据存储 | TimescaleDB/PostgreSQL、Prisma、Redis、可选 ClickHouse |
| 桌面端 | Electron |
| 测试 | Vitest、Pytest、Playwright |
开始前请安装:
- Node.js 22.19.0 或更高版本
- npm 10.0.0 或更高版本
- Docker Desktop(用于 TimescaleDB 和 Redis)
- uv(用于自动管理 Python 3.14 和行情服务依赖)
确认环境:
node --version
npm --version
docker --version
uv --version在项目根目录执行:
npm install
npm run ensure:env安装过程会依据 .env.example 创建或补全本地的 .env 与 .env.local。这两个文件可能包含密钥,不要提交到 Git。
打开 .env.local,至少配置一种可用的模型凭证。推荐使用项目默认的 ModelPort 模式:
MODELPORT_API_KEY="你的 API Key"如不需要长期记忆服务,可在本地开发时关闭:
QUANTPILOT_MEMORY_ENABLED=0完整配置项及默认值请参考 .env.example。切勿把真实密钥写入示例文件。
确保 Docker Desktop 正在运行,然后执行:
npm run db:up
npm run db:init默认启动的服务如下:
| 服务 | 默认地址 | 作用 |
|---|---|---|
| Web | http://localhost:3000 |
主应用 |
| Market API | http://127.0.0.1:8000 |
行情与量化数据接口 |
| TimescaleDB | 127.0.0.1:35433 |
业务与时序数据 |
| Redis | 127.0.0.1:36380 |
缓存与任务协调 |
npm run dev该命令会启动 Web 应用,并在启用行情能力时自动启动 Market API。终端显示服务就绪后,访问:
http://localhost:3000
若只调试 Web 界面,可运行:
npm run dev:web若希望使用桌面端开发模式,可运行:
npm run dev:desktop-
打开工作台:访问
http://localhost:3000,进入首页。 -
检查设置:在“设置”中确认模型与所需服务可用;首次使用建议先运行
npm run doctor。 -
选择研究能力:根据任务选择个股诊断、基本面分析、资产对比、指数技术分析、组合风险或策略回测等能力。
-
输入研究问题:描述研究对象、时间范围、指标和期望输出。例如:
分析贵州茅台近 60 个交易日的趋势、量能、估值与主要风险, 给出关键数据依据,并明确数据日期。 -
创建任务:选择模型后提交。系统会创建独立研究项目,并展示执行进度、工具调用和中间结果。
-
核验结果:重点检查数据日期、数据源、计算口径和风险提示;行情服务不可用时,部分能力会降级。
-
继续追问:在同一项目中补充条件或要求修改输出,例如“加入沪深 300 作为基准”或“把结果整理成表格”。
-
查看成果:从首页最近项目进入历史任务,也可在“研究报告”或相关平台页面管理成果。
| 命令 | 说明 |
|---|---|
npm run dev |
启动完整开发环境 |
npm run dev:web |
仅启动 Web 应用 |
npm run dev:market |
单独启动行情服务 |
npm run db:up |
启动 TimescaleDB 和 Redis |
npm run db:down |
停止 Docker 基础服务 |
npm run db:doctor |
检查数据库状态 |
npm run doctor |
检查本地开发环境 |
npm run test |
运行前后端测试 |
npm run type-check |
执行 TypeScript 类型检查 |
npm run lint |
执行代码规范检查 |
npm run build |
构建生产版本 |
npm run prisma:studio |
打开 Prisma 数据管理界面 |
启动 Loki、Grafana 和 Alloy:
npm run obs:upGrafana 默认地址为 http://127.0.0.1:33012。开发环境默认账户配置见 .env;生产环境必须修改默认密码。
ClickHouse 默认未启用。如需大规模分析,可在环境变量中启用并单独启动容器:
docker compose up -d clickhouseQUANTPILOT_CLICKHOUSE_ENABLED=1先确认 Docker Desktop 已启动,再检查容器状态:
docker compose ps
npm run db:logs检查 .env.local 中的模型 API Key,然后运行:
npm run check:models
npm run doctor检查健康接口和本地环境:
curl http://127.0.0.1:8000/health
npm run dev:marketWindows PowerShell 也可以使用:
Invoke-RestMethod http://127.0.0.1:8000/healthnpm run dev 会尝试为 Web 应用寻找可用端口。也可以显式指定端口:
npm run dev -- --port 3001如修改数据库、Redis 或行情端口,请同时更新 .env / .env.local 中对应的连接地址。
quant804/
├─ src/ # Next.js 页面、组件、API 与业务逻辑
├─ services/market-data/ # Python 行情和量化数据服务
├─ prisma/ # 数据模型与数据库迁移
├─ sqls/ # 时序数据库初始化及数据修复脚本
├─ scripts/ # 开发、构建、检查、运维与评测脚本
├─ benchmarks/ # 量化能力评测数据集与快照
├─ config/ # 模型、服务、权限和评测配置
├─ deploy/ # Docker、systemd 与可观测性配置
├─ electron/ # Electron 桌面端入口
└─ public/ # Logo、图标等静态资源
构建前先执行完整检查:
npm run doctor:full
npm run type-check
npm run test
npm run build启动生产构建:
npm run start生产部署前请基于 .env.production.example 配置独立密钥、强密码、HTTPS、安全 Cookie、访问控制及备份策略,不要直接沿用开发环境默认值。
本项目基于 MIT License 发布。
