返回 AI 项目
AI 项目
10 分钟阅读

Today Stock Finance:Vibe Coding 驱动的股票分析平台

基于 TypeScript + Koa2 + React + DeepSeek 的本地化股票分析工具,记录从脚手架到真实行情与 AI 研报的全流程工程实践

概述

Today Stock Finance 是一款本地运行的股票市场分析平台,目标能力包括:

  • 炒股术语查询与分类浏览
  • A 股基本面与实时行情查看
  • 基于 DeepSeek 的多维度 AI 研报(短线 / 长线、持仓感知)

本文重点不在 Node.js 环境安装,而是记录如何借助 Vibe Coding(Trae CN + DeepSeek V4 Pro)在较短时间内搭出前后端分离、分层清晰的可运行工程,并逐步接入真实数据源与 AI 分析模块。

技术栈

层级选型说明
后端TypeScript + Koa2洋葱模型中间件、Controller / Service 分层
前端TypeScript + React + RTKVite 构建,Redux Toolkit 管理异步数据流
AIDeepSeek V4 Pro APISystem Prompt 驱动的结构化研报生成
工具链Trae CNAgent 多任务模式,批量生成脚手架与联调代码
联调CORS + Vite Proxy后端 :6500,前端 :6501

前后端完全分离:React 仅负责展示与交互,核心数据与业务逻辑收敛在 Koa2 服务端。

系统架构

┌─────────────────────────────────────────────────────────────┐
│  Client  :6501  (Vite + React + RTK)                        │
│  ┌──────────┐  ┌────────────┐  ┌─────────────────────────┐ │
│  │  Pages   │→ │ RTK Store  │→ │ api.ts (fetch)          │ │
│  └──────────┘  └────────────┘  └────────────┬────────────┘ │
└─────────────────────────────────────────────┼──────────────┘
                                              │ /api/*
                                              ▼
┌─────────────────────────────────────────────────────────────┐
│  Server  :6500  (Koa2 + TypeScript)                         │
│  Routes → Controllers → Services → Data Layer               │
│                              ├─ 东方财富 API (优先)           │
│                              ├─ 腾讯行情 API (回退)           │
│                              ├─ 本地 mock (兜底)              │
│                              └─ DeepSeek API (AI 分析)       │
└─────────────────────────────────────────────────────────────┘

数据流:页面通过 RTK createAsyncThunk 触发请求 → api.ts 调用后端 REST → Controller 解析参数 → Service 聚合业务逻辑 → Data Layer 拉取外部 API 或 mock。

项目结构

Agent 首轮对话即可生成完整 Scaffold:

z_finance_stock/
├── package.json                  # 根配置,concurrently 一键启动前后端
├── server/                       # 后端 Koa2 + TypeScript
│   ├── src/
│   │   ├── index.ts              # 入口,端口 6500
│   │   ├── types/index.ts
│   │   ├── middleware/errorHandler.ts
│   │   ├── controllers/          # termController, stockController, aiController
│   │   ├── services/             # termService, stockService, aiService
│   │   ├── routes/
│   │   └── data/                 # mock + eastmoney.ts 等外部数据源
│   └── tsconfig.json
├── client/                       # 前端 Vite + React + TypeScript
│   ├── src/
│   │   ├── router/index.tsx
│   │   ├── store/                # store.ts, stockSlice.ts, hooks.ts
│   │   ├── services/api.ts
│   │   ├── pages/                # Home, TermSearch, StockList, StockDetail, AIAnalysis
│   │   └── components/Layout.tsx
│   └── vite.config.ts            # 开发代理 → localhost:6500

开发历程(Vibe Coding 工作流)

以下按迭代阶段整理实际 Prompt 与产出,可作为类似项目的参考模板。

Phase 1:脚手架搭建

Prompt 要点

新建股票分析项目:前端 Vite + React + RTK + React Router;
后端 Koa2 + TypeScript。实现术语查询、基本面查看;
数据分层,核心逻辑在后端,React 仅展示。

Agent 任务拆分:初始化目录 → 后端骨架(路由 / 控制器 / 服务 / 数据层)→ 术语与股票 API → 前端页面与 RTK → 依赖安装与联调代理。

产出:可运行的前后端项目,含 mock 数据与基础 UI。

Phase 2:接入真实行情

Promptstocks.ts 接入真实的股票数据查询

数据源策略(三级回退)

优先级来源能力
1东方财富 API(push2 + 财报)搜索、行情、财务报表
2腾讯行情 API(qt.gtimg.cn)实时报价回退
3本地 mock(stocks.ts)离线兜底

Service 层改为 async,Controller 同步适配。验证方式:对比页面展示股价与当日行情是否一致。

Phase 3:Bug 修复与类型加固

典型问题与修复:

问题根因修复
currentFundamental 类型为 unknowncreateAsyncThunk 缺少泛型为 thunk 补充 <ReturnType, ArgType>
端口占用重复启动启动脚本检测并释放 6500 / 6501
腾讯 API 乱码响应为 GBK 编码TextDecoder('gbk') 解码
缺少实时股价push2 字段未映射StockFundamental 增加 pricechangePercent
updateDate 显示财报日期字段语义混淆拆分「财报报告期」与「数据拉取时间」

Phase 4:UI 现代化

Prompt:整体风格现代化,暗色主题 + Glassmorphism。

迭代范围:全局 Layout、Home Hero、StockList 表格、StockDetail 指标卡片、TermSearch 术语卡片。Agent 按页面分批提交 CSS 与组件改动,最后统一构建验证。

Phase 5:AI 分析模块

能力需求

  • 调用 DeepSeek V4 Pro,从基本面、情绪面、买卖时机、暴涨暴跌应对等维度输出研报
  • 支持短线 / 长线策略切换
  • 可选填持仓信息(是否持仓、成本价、数量),使分析更贴近个人情况
  • 报告以 Markdown 渲染;System Prompt 在报告上方单独展示(不计入导出内容)
  • 支持导出报告到本地

后端aiService 构建专业 System Prompt + User Prompt → POST /api/ai/analyze → 返回 { report, systemPrompt }

前端react-markdown 渲染报告;AIAnalysis 页面含策略切换与持仓表单;StockDetail 入口按钮跳转。

API 概览

路径方法功能
/api/termsGET术语搜索与分类
/api/stocksGET股票列表 / 关键词搜索
/api/stocks/:code/fundamentalGET基本面 + 实时行情
/api/ai/analyzePOSTAI 研报生成(含策略与持仓参数)

效果预览

Trae CN IDE 工程视图

Trae CN 中的项目工程结构

Web 运行效果

页面截图
首页首页
术语查询术语查询
股票列表股票列表
基本面详情基本面详情
复盘笔记复盘笔记
股价与指标股价展示
AI 分析中AI 分析进行中
AI 分析报告AI 分析结果

后续规划

Docker 化部署

若项目稳定且愿意对外分享,可打包为 Docker 镜像发布至 Docker Hub,降低他人部署门槛。参考 MT Photos 的容器化分发模式(Docker 仓库)。

商业化思路(探索)

模块策略
行情 / 术语查询免费开放,降低使用门槛
定制 Prompt 模板付费板块,差异化研报质量
能力赋能分成若工具可量化提升用户收益,可探索约定分成机制

核心难点不在技术,而在 Prompt 工程与产品运营:什么样的领域知识 + 模型组合,能持续产出有价值的分析报告。

内容爬取与知识增强

股票社区(公众号、论坛等)存在大量主观但可提炼的分析思路。后续可探索:

  • 应用层:爬取优质文章 → LLM 提取分析框架 → 生成可复用 Skills → 结合当日行情输出决策辅助
  • 架构层:将文章作为训练 / RAG 语料 → 定制分析 Workflow → 搭配 Hooks 做量化信号

两条路径均处于构想阶段,需额外考虑版权合规与数据质量。

小结

Today Stock Finance 是一次 Vibe Coding 工程化实践:用 Agent 快速生成 Koa2 + React 分层骨架,再按「真实数据 → 类型修复 → UI → AI 模块」分阶段迭代。Koa2 洋葱模型、RTK 异步流、多级数据源回退、DeepSeek Prompt 工程,构成了项目的核心技术点。

关于 Vibe Coding 方法论的个人思考,见 Vibe Coding 的一些看法

相关文章

更多
公开
8 分钟
Vibe Coding,当工程师拿上了作弊神器
对 Vibe Coding 趋势的个人判断——国产 Agent 的性价比、能力边界、静态语言偏好,以及它是否也是一种「电子沉迷」