architecture.md 3.0 KB

AI有声书 v2 - 架构

系统架构和关键设计决策。 维护者:team-lead, devs(架构变更后更新)

系统概览

AI 有声书生成平台,包含:

  • 前端:uni-app (Vue 3),多端支持(H5/小程序)
  • 后端:Node.js + Express,Prisma ORM
  • 数据库:PostgreSQL
  • 实时通信:WebSocket(生成进度推送)

组件图

┌─────────────────┐     ┌─────────────────┐
│   微信小程序      │     │   H5 / Web      │
│   (uni-app)     │     │   (uni-app)     │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘
                     │ HTTP/WebSocket
         ┌───────────▼───────────┐
         │     Node.js API       │
         │   (Express + Prisma)  │
         └───────────┬───────────┘
                     │
    ┌─────────────────┼─────────────────┐
    │                 │                 │
┌───▼───┐      ┌─────▼─────┐    ┌─────▼─────┐
│PostgreSQL│    │  文件存储   │    │  AI 服务   │
│         │    │(本地/NFS) │    │ (TTS API) │
└─────────┘    └───────────┘    └───────────┘

目录结构

audio_codebuddy/
├── my-uniapp-vue3/          # 前端 uniapp 项目
│   └── src/
│       ├── pages/           # 页面
│       ├── components/      # 组件
│       ├── stores/          # Pinia 状态
│       └── utils/            # 工具函数
├── server/                  # 后端 Node.js
│   └── src/
│       ├── modules/          # 业务模块
│       │   └── book-generator/
│       ├── services/         # 服务层
│       └── app.ts            # Express 入口
└── 优化开发计划.md           # 优化文档

技术栈

  • 前端:Vue 3 + TypeScript + uni-app + Pinia
  • 后端:Node.js + Express + TypeScript + Prisma
  • 数据库:PostgreSQL + Prisma ORM
  • 实时:WebSocket(ws 库)
  • AI:TTS API(外部服务)

关键设计

有声书生成流程

  1. 创建书籍 → AI 生成章节内容
  2. 生成音频 → TTS 文字转语音
  3. 生成视频 → 音频 + 封面图合成
  4. 发布分享

状态管理

  • 前端:Pinia stores(bookStore, playerStore, userStore)
  • 后端:Prisma + 内存状态(book-generator.store.ts)

API 设计

  • RESTful API
  • WebSocket 推送生成进度
  • 前后端接口见 api-contracts.md