Răsfoiți Sursa

docs: team task list v1.6.0 + demo deploy/runbook for team onboarding

- docs/team-tasks-v1.6.0.md: P0-P2 十项任务(授权/支付/部署/定价/校对/测试/同步/SEO/客服),含验收标准与负责人占位
- docs/demo-runbook-v1.6.0.md: 团队自部署指南(3 分钟)+ 20 分钟讲解演示脚本 + FAQ
- README: 增加一键 demo 入口
DoTouch Dev 2 săptămâni în urmă
părinte
comite
26f2f31178

+ 2 - 2
.omo/run-continuation/ses_0229f653bffedHZYFR3ILxjlpg.json

@@ -1,10 +1,10 @@
 {
   "sessionID": "ses_0229f653bffedHZYFR3ILxjlpg",
-  "updatedAt": "2026-08-09T12:11:42.598Z",
+  "updatedAt": "2026-08-09T14:42:37.804Z",
   "sources": {
     "background-task": {
       "state": "idle",
-      "updatedAt": "2026-08-09T12:11:42.598Z"
+      "updatedAt": "2026-08-09T14:42:37.804Z"
     }
   }
 }

+ 10 - 0
README.md

@@ -32,6 +32,16 @@ dotouch-ai/
 
 ## 快速开始
 
+### 方式 A:一键 demo(推荐先看效果,无需安装依赖)
+
+```bash
+docker compose -f docker-compose.demo.yml up -d --build
+open http://localhost:3000   # 官网(9 语言)
+```
+完整部署说明与演示脚本:`docs/demo-runbook-v1.6.0.md`;团队任务清单:`docs/team-tasks-v1.6.0.md`
+
+### 方式 B:本地开发
+
 ```bash
 # 安装依赖
 pnpm install

+ 102 - 0
docs/demo-runbook-v1.6.0.md

@@ -0,0 +1,102 @@
+# DoTouch.AI 团队自部署与演示脚本 v1.6.0
+
+> 版本:v1.6.0 | 日期:2026-08-09 | 用途:① 团队本地部署 demo;② 讲解现场 step-by-step 演示脚本
+> 代码仓库即 demo 完整代码(docker-compose.demo.yml 已在 git),clone 后一条命令部署
+
+---
+
+## 一、环境要求
+
+| 依赖 | 版本 | 说明 |
+|---|---|---|
+| Docker Desktop | ≥ 4.x | macOS / Windows / Linux 均可 |
+| 空闲端口 | 3000 / 8081 / 5433 / 6380 | 官网 / API / 演示库 / 演示 Redis |
+| 资源 | ≥ 4GB 内存 | 演示含 5 个容器 |
+
+## 二、部署(3 分钟)
+
+```bash
+# 1. 克隆仓库
+git clone <仓库地址> dotouch-ai && cd dotouch-ai
+
+# 2. 启动演示环境(自动构建 5 容器:PG/Redis/mock上游/API/官网)
+docker compose -f docker-compose.demo.yml up -d --build
+
+# 3. 验证(等 15–30 秒初始化)
+curl http://localhost:8081/v1/health          # 预期:{"status":"ok","version":"1.6.0",...}
+open http://localhost:3000                     # 官网(默认越南语)
+```
+
+- 首次启动自动完成:数据库迁移 → Prisma 生成 → 236 模型 seed(幂等)→ 启动 API
+- 关闭:`docker compose -f docker-compose.demo.yml down`
+- 彻底清理(含数据):`docker compose -f docker-compose.demo.yml down -v`
+
+## 三、演示账号
+
+| 账号 | 密码 | 用途 |
+|---|---|---|
+| `demo.user@dotouch.ai` | `User2026!` | 官网 / 用户控制台(余额 $150) |
+| `admin@dotouch.ai` | `Admin2026!` | 管理后台 |
+| `test-e2e@dotouch.ai` | `Test1234` | 接口联调(admin 角色) |
+| `social.demo@dotouch.ai` | —(mock 社交登录) | 社交登录演示 |
+
+## 四、演示脚本(讲解现场 20 分钟版)
+
+### A. 官网全貌(3 min)
+1. 打开 `http://localhost:3000` → 展示 Hero / 模型卡 / 定价预览 / 邀请奖励区块
+2. **9 语言切换**:右上角语言下拉 → 依次切 `Tiếng Việt / English / Bahasa Indonesia / ไทย / العربية`
+   - 关键点:ar-SA 页面整体 RTL(右侧开始排版);每种语言价格显示本币(vi→₫ / id→Rp / ar→SAR)
+3. 模型卡价格:USD 基准价 + 本币换算(稳定汇率)
+
+### B. 认证闭环(3 min)
+1. 点「登入」→ 用 `demo.user@dotouch.ai / User2026!` 登录 → 自动跳转控制台
+2. 演示注册流程(可选):退出 → 注册 → 邮箱验证码(**演示环境验证码打印在 API 日志**):
+   ```bash
+   docker logs demo-dotouch-api | grep -iE "code|mã|验证码" | tail -3
+   ```
+3. 社交登录(可选):登录弹窗 → Google/Facebook 按钮 → mock 一键登录
+
+### C. 控制台(4 min)
+1. 总览:余额($150)/ 今日请求 / Token / 7 天用量
+2. **API Keys**:创建 Key(`dt_` 前缀,仅显示一次)→ 撤销/轮换演示
+3. **用量限额**:设置限额 → 触发 80% 预警横幅(`q_banner_80` 文案)
+4. **钱包**:充值(mock 支付直通)→ 余额变化 → 流水记录
+5. **邀请奖励**:复制邀请链接 → 展示规则(10% + $5 上限)
+
+### D. 调 API(3 min,核心亮点)
+```bash
+# 用控制台创建的 Key 调用(mock 上游即时响应)
+curl -s http://localhost:8081/v1/chat/completions \
+  -H "Authorization: Bearer <你的Key>" \
+  -H "Content-Type: application/json" \
+  -d '{"model":"deepseek-v4","messages":[{"role":"user","content":"你好"}]}'
+```
+- 演示流式:`"stream": true` → 观察 SSE `data:` 块 + `[DONE]`
+- 演示错误格式:错 Key → 401;余额不足 → 402(OpenAI 规范错误体)
+
+### E. 管理后台(3 min)
+1. `http://localhost:3000/admin` → `admin@dotouch.ai / Admin2026!` 登录
+2. 数据看板:订单 / 活跃用户 / 付费率 / 留存
+3. 模型管理:236 全量目录
+4. 邀请策略配置卡:奖励比例 / 上限(演示 SystemConfig 可配)
+
+### F. 关键机制讲解(4 min,配合代码)
+1. **稳定汇率链路**:`apps/api/src/config/config.service.ts`(SystemConfig → 7 币种)→ `apps/web/src/components/FxPrice.tsx`(本币主价)→ 管理后台汇率卡
+2. **网关计费链路**:`gateway/`(OpenAI 兼容 + SSE)→ `wallet/`(预扣-结算-退款)→ `usage/`(明细)
+3. **i18n 五件套**:`middleware.ts`(9 locale 路由)→ `src/i18n/request.ts` → `lib/seo.ts`(LOCALES)→ `[locale]/layout.tsx`(RTL)→ `LocaleSwitcher.tsx`(下拉)
+4. **演示环境拓扑**:`docker-compose.demo.yml`(PG/Redis/mock 上游 19090)
+
+## 五、常见问题(FAQ)
+
+| 症状 | 原因与解法 |
+|---|---|
+| 官网 500 / API 连不上 | 初始化未完成:`docker compose -f docker-compose.demo.yml ps` 等 `demo-dotouch-api` Up 后再试 |
+| 验证码找不到 | 演示环境邮件打印在容器日志:`docker logs demo-dotouch-api \| grep -i code` |
+| 端口被占用 | 改 `docker-compose.demo.yml` 端口映射(3000→3001 等)后 `up -d` |
+| 改了代码想更新 | `docker compose -f docker-compose.demo.yml up -d --build`(镜像重建) |
+| 数据乱了想重置 | `down -v` 后重新 `up -d --build`(自动重新 seed) |
+| 想调真实 DashScope | 改 `.env` 的 `DASHSCOPE_API_KEY`,演示环境默认指向 mock 上游(零成本、可离线) |
+
+## 六、生产部署差异提醒
+
+demo 与生产的差异:mock 上游 → DashScope 真实 Key;`PAYMENT_PROVIDER=mock` → momo/zalopay;演示数据 → 空库冷启动;本地端口 → 香港节点 + 域名/SSL。生产部署见 `docs/team-tasks-v1.6.0.md` T-03。

+ 113 - 0
docs/team-tasks-v1.6.0.md

@@ -0,0 +1,113 @@
+# DoTouch.AI 团队任务清单 v1.6.0
+
+> 版本:v1.6.0 | 日期:2026-08-09 | 配套文档:`docs/PROJECT-OVERVIEW.md`(项目全景)、`docs/demo-runbook-v1.6.0.md`(部署与演示)
+> 认领方式:在"负责人"栏填写姓名;完成后在验收栏打勾并注明提交号
+
+---
+
+## P0 · 上线阻断(未完成前不公开发布)
+
+### T-01 阿里云百炼分销授权确认 ⚠️ 最高优先级
+- **背景**:合规调研(`docs/compliance/`)确认美系平台明令禁止 API 转售;DoTouch 属转售模式,须取得阿里云百炼书面分销授权
+- **目标**:拿到可归档的书面授权(邮件/合同),确认转售条款与分成模式
+- **涉及**:商务沟通(无代码)
+- **验收**:授权文件归档至 `docs/compliance/`,README 合规章节更新结论
+- **工作量**:1 周沟通 + 跟踪
+- **负责人**:______ | **验收**:☐
+
+### T-02 支付渠道真实接入(MoMo / ZaloPay)
+- **背景**:当前 `PAYMENT_PROVIDER=mock`(演示直通),生产需真实收款
+- **目标**:MoMo/ZaloPay 沙箱联调通过 → 切正式;`POST /v1/wallet/deposit` + webhook 回调全链路验证
+- **涉及**:`apps/api/src/payments/`(provider 接口已抽象)、`apps/api/src/wallet/`、环境变量(`MOMO_*`/`ZALOPAY_*`,见 `.env.example`)
+- **验收**:真实沙箱订单创建 → 回调 → 余额到账;订单状态机正确(pending→success/failed)
+- **工作量**:1–2 周
+- **负责人**:______ | **验收**:☐
+
+### T-03 生产部署(香港节点 + CI/CD)
+- **背景**:当前仅本地/演示 Docker 环境;生产目标香港节点(品牌决策)
+- **目标**:生产环境可访问:官网 9 语言 + API + 数据库备份策略 + 域名/SSL + CI 自动构建
+- **涉及**:`deploy/`(空目录待建)、`docker-compose.demo.yml` 为参考、`.env` 生产变量清单
+- **验收**:生产 URL 可访问;`/v1/health` 返回 `v1.6.0`;CI 上每次 push 自动构建通过
+- **工作量**:3–5 天
+- **负责人**:______ | **验收**:☐
+
+---
+
+## P1 · 产品完善
+
+### T-04 FxPrice 接入其余价格页
+- **背景**:本币主价组件 `FxPrice` 已接入首页(模型卡 + 定价预览);pricing 页 / catalog / models 详情 / console 钱包仍为 USD
+- **目标**:9 语言 × 7 币种全站价格统一走 `FxPrice`
+- **涉及**:`apps/web/src/components/pricing/PriceTable.tsx`、`CatalogTabs.tsx`、`models/ModelDetailCards.tsx`、`console/WalletPanel.tsx`
+- **验收**:vi 页显示 ₫、id-ID 显示 Rp、ar-SA 显示 SAR,价格与 USD 基准换算正确
+- **工作量**:1 天
+- **负责人**:______ | **验收**:☐
+
+### T-05 管理后台配置持久化(汇率 / 推荐策略 / 安全策略)
+- **背景**:SettingsPanel 各设置项目前为 UI 占位;后端 SystemConfig 读取链路已就绪(`fx.*` 7 币种 + `referral.*`)
+- **目标**:管理后台编辑 → 写 SystemConfig → 官网/API 即时生效
+- **涉及**:`apps/api/src/admin/`(新增 PUT /v1/admin/config/fx 等)、`apps/web/src/components/admin/panels/SettingsPanel.tsx`
+- **验收**:改 VND 汇率为 26000 → 官网 vi 页价格即时变化;重启不丢失
+- **工作量**:2–3 天
+- **负责人**:______ | **验收**:☐
+
+### T-06 新 5 语言母语校对
+- **背景**:id-ID / ms-MY / th-TH / zh-HK / ar-SA 由 AI 翻译生成(398 条 × 5),需母语者校对
+- **目标**:无生硬直译、术语统一(营销 + 开发者文档语气)
+- **涉及**:`apps/web/messages/{id-ID,ms-MY,th-TH,zh-HK,ar-SA}.json`、`src/lib/seo.ts` 元数据
+- **验收**:每语言提交校对记录表(哪些 key 修正了)
+- **工作量**:2 天(可外包)
+- **负责人**:______ | **验收**:☐
+
+---
+
+## P2 · 质量与增长
+
+### T-07 自动化测试补强
+- **背景**:当前为手工验收体系(`docs/testing/feature-acceptance-matrix.md`,90+ 用例);无自动化 spec
+- **目标**:API 核心链路(auth / keys / wallet / gateway / quota / referral)Vitest + e2e 冒烟
+- **涉及**:`apps/api/src/**/*.spec.ts`(新建)、CI 接入
+- **验收**:`pnpm test` 通过;CI 含测试步骤
+- **工作量**:1 周
+- **负责人**:______ | **验收**:☐
+
+### T-08 上游价格变动同步机制
+- **背景**:236 模型目录价格来自静态 seed(`docs/models/dashscope-pricing-20260808.md`),上游调价需人工同步
+- **目标**:定时(每日)拉取上游价格 → diff → 告警/自动更新 + 差价保护(避免倒挂)
+- **涉及**:`apps/api/src/models/`、新增 cron 模块
+- **验收**:模拟上游调价 → 系统检测到 diff 并告警
+- **工作量**:3–5 天
+- **负责人**:______ | **验收**:☐
+
+### T-09 SEO P2/P3
+- **背景**:P1 技术 SEO 已完成(`docs/seo/seo-strategy-v1.0.md`);P2 内容 SEO、P3 站内搜索 + GA4 数据出境评估
+- **目标**:产出 P2/P3 方案;GA4 vs PDPD 合规结论
+- **涉及**:`docs/seo/`、官网内容
+- **验收**:方案文档 + 合规评估结论归档
+- **工作量**:1 周
+- **负责人**:______ | **验收**:☐
+
+### T-10 Chatwoot 客服自托管接入
+- **背景**:品牌决策采用 Chatwoot 自托管;官网 `SupportFab` 组件为静态占位
+- **目标**:Chatwoot 实例部署 + 官网浮动按钮真实连通(Zalo/Telegram/Email 渠道)
+- **涉及**:`apps/web/src/components/SupportFab.tsx`、Chatwoot 部署
+- **验收**:官网点击客服 → Chatwoot 对话窗打开 → 消息可达
+- **工作量**:2 天
+- **负责人**:______ | **验收**:☐
+
+---
+
+## 任务矩阵速览
+
+| 编号 | 任务 | 优先级 | 角色 | 工作量 |
+|---|---|---|---|---|
+| T-01 | 百炼分销授权 | P0 | 商务 | 1 周 |
+| T-02 | 支付真实接入 | P0 | 后端 | 1–2 周 |
+| T-03 | 生产部署 | P0 | DevOps | 3–5 天 |
+| T-04 | FxPrice 全站 | P1 | 前端 | 1 天 |
+| T-05 | 配置持久化 | P1 | 全栈 | 2–3 天 |
+| T-06 | 语言校对 | P1 | 内容 | 2 天 |
+| T-07 | 自动化测试 | P2 | 测试 | 1 周 |
+| T-08 | 上游价格同步 | P2 | 后端 | 3–5 天 |
+| T-09 | SEO P2/P3 | P2 | 前端 | 1 周 |
+| T-10 | Chatwoot | P2 | 运维 | 2 天 |