# 技术侧实施清单

## 目标

本文档将技术侧方案拆成可执行清单，按优先级和阶段推进，适合直接排期。

## 第一阶段：可公开部署

### 1. 安全整改

- [ ] 将数据库配置迁移到环境变量
- [ ] 新增 `.env.example`
- [ ] 删除代码中的默认数据库密码
- [ ] 移除默认 `admin/admin`
- [ ] 引入 `bcrypt` 或 `argon2`
- [ ] 增加管理员初始化脚本
- [ ] 限制 `CORS` 来源
- [ ] 生产环境启用 `secure cookie`

### 2. 基础工程化

- [ ] 编写 `Dockerfile`
- [ ] 编写 `docker-compose.yml`
- [ ] 配置 MySQL 容器
- [ ] 配置 Redis 容器
- [ ] 规范数据卷目录
- [ ] 编写部署说明文档

### 3. 日志与健康检查

- [ ] 新增统一日志格式
- [ ] 为请求生成 `request_id`
- [ ] 增加 `/api/health`
- [ ] 记录 TTS 请求耗时
- [ ] 记录异常日志

## 第一阶段验收标准

- [ ] 项目可通过 `docker compose up` 启动
- [ ] 无敏感配置硬编码
- [ ] 默认无弱口令管理员
- [ ] 健康检查可返回数据库和 TTS 状态

## 第二阶段：可控试运营

### 4. 数据结构升级

- [ ] 新增 `plan`
- [ ] 新增 `user_plan`
- [ ] 新增 `usage_daily`
- [ ] 新增 `tts_request_log`
- [ ] 新增 `audio_cache_index`

### 5. 配额和限流

- [ ] 定义免费版默认配额
- [ ] 定义 Pro 版默认配额
- [ ] 接口增加单次文本长度限制
- [ ] 接口增加每日字符限制
- [ ] 登录接口增加限流
- [ ] 生成接口增加限流

### 6. 用量统计

- [ ] 每次生成记录请求日志
- [ ] 每次成功生成累计 `usage_daily`
- [ ] 增加用户用量查询接口
- [ ] 增加后台基础统计接口

### 7. 缓存增强

- [ ] 统一缓存 key 规则
- [ ] 缓存写入时同步索引表
- [ ] 缓存命中时更新命中次数
- [ ] 增加缓存命中率统计

## 第二阶段验收标准

- [ ] 免费用户超额后会被正确拦截
- [ ] 后台可看到今日生成量
- [ ] 系统可统计缓存命中率
- [ ] 日志可追踪一次生成请求

## 第三阶段：可收费运营

### 8. 异步任务队列

- [ ] 选型 `RQ` 或 `Celery`
- [ ] 增加 `async_task`
- [ ] 长文本改为异步任务
- [ ] 返回 `task_id`
- [ ] 提供任务状态查询接口
- [ ] 失败任务支持重试

### 9. 管理员后台完善

- [ ] 增加仪表盘统计页
- [ ] 增加套餐管理页
- [ ] 增加用户套餐分配能力
- [ ] 增加 TTS 日志查看页
- [ ] 增加任务查看与重试页
- [ ] 增加缓存概览页

### 10. 监控与告警

- [ ] 采集 CPU、内存、磁盘指标
- [ ] 采集队列长度
- [ ] 采集错误率
- [ ] 搭建 Grafana 面板
- [ ] 增加基础告警规则

## 第三阶段验收标准

- [ ] 长文本不会阻塞主接口
- [ ] 管理员可查看任务状态和失败原因
- [ ] 系统可以看到资源占用和错误趋势

## 推荐工期

### 第 1 周

- 安全整改
- `.env` 改造
- 基础日志

### 第 2 周

- Docker 化
- 健康检查
- 部署文档

### 第 3 周

- 数据表扩展
- 配额和限流
- 用量统计

### 第 4 周

- 缓存索引
- 后台统计
- 基础运营能力

### 第 5-6 周

- 异步任务
- 管理后台增强

### 第 7-8 周

- 监控告警
- 压测与问题修复

## 风险提示

### 需要优先避免的问题

- 一边收费一边仍然使用弱密码体系
- 没有配额就开放大量生成
- 没有日志导致问题无法排查
- 没有缓存索引导致缓存失控

## 总结

技术实施建议先做“安全、部署、配额、日志”，再做“缓存、统计、后台”，最后做“任务队列和监控”。这个顺序能保证你尽快得到一个可公开、可控、可收费的系统，而不是先把架构做重。
