「美搭」需求规格说明
版本:v1.2 | 更新日期:2026-08-13 | 状态:待评审
本文的定位:把散落在五份需求文档中的需求统一编号、统一优先级、统一验收标准,成为开发任务拆解与测试用例编写的唯一索引。
本文与其他文档的关系:
- 各模块的设计细节与推理过程仍在各自的需求文档中(报告分级逻辑、记忆分层模型、知识分类体系等),本文不重复。
- 本文提供可勾选、可验收、可指派的需求条目。开发任务、测试用例、验收清单都引用本文编号。
- 技术实现方式见《技术架构文档》,技术选型理由见《技术选型与调研报告》。
1. 编号与优先级规范
1.1 编号规则
模块代码:
| 代码 |
模块 |
主文档 |
| ACC |
账号与用户系统 |
用户系统与记忆系统-需求文档 |
| MEM |
记忆系统 |
用户系统与记忆系统-需求文档 |
| RPT |
美学报告 |
美学报告-需求文档 |
| AGT |
穿搭 Agent |
穿搭Agent-需求文档 |
| TRY |
智能试穿(换装) |
产品方案 §2.1 |
| HAIR |
发型设计 |
产品方案 §2.1 |
| KB |
美学知识库 |
美学知识库-建设方案 |
| TASK |
任务中心 |
产品方案 §2.7 |
| BILL |
权益与计费 |
产品方案 §3、§5 |
| ADM |
运营后台 |
技术选型报告 TD-25 |
| WDB |
我的衣橱 |
产品方案 §2.6 |
| SYS |
系统级/横切 |
技术架构文档 |
1.2 优先级定义
| 级别 |
含义 |
判定标准 |
| P0 |
V1 必须有 |
缺它则核心闭环不成立,或无法合法上线 |
| P1 |
V1 期望有 / V2 必须有 |
缺它体验受损但闭环仍在 |
| P2 |
增强 |
锦上添花,可随时后置 |
1.3 验收标准的书写要求
每条 P0 需求必须有可判定的验收标准。不合格的写法与合格的写法对比:
| ❌ 不可验收 |
✅ 可验收 |
| 报告生成速度快 |
初级报告 p95 生成耗时 < 90s,超时转后台并推送 |
| 建议要专业 |
生成结果中硬性禁忌规则违反数 = 0(黄金集 100 例全通过) |
| 记忆要准确 |
显式偏好写入后,下一轮对话注入率 100%,且用户可在「我的记忆」看到该条 |
1.4 完成定义(DoD)
任一需求标记为完成,必须同时满足:
- 功能实现且通过验收标准;
- 单元/集成测试覆盖主路径与关键异常路径;
- 涉及生成内容的,已接入统一合规出口(
CR-05);
- 涉及配额消耗的,已接入预扣-确认-退还三段式(
FR-BILL-05),且消耗前有剩余量提示;
- 关键埋点已上报(
FR-SYS-06);
- 失败态有用户可读的错误文案与下一步指引。
2. 功能需求
2.1 ACC 账号与用户系统
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-ACC-01 |
华为账号登录(UnionID/OpenID) |
P0 |
V1 |
登录成功率 ≥ 99%;首次登录自动创建用户;UnionID 与内部 user_id 映射唯一 |
TD-15 |
| FR-ACC-02 |
游客模式:未登录可体验核心功能 |
P0 |
V1 |
游客配额(唯一事实源:产品方案 §3.2 配额表游客行):换装 1 次、发型 1 次、初级报告 1 次、对话 3 轮,全部为设备维度终身额度(非每日);用尽后引导登录而非静默失败;额度用尽提示不出现价格字样 |
FR-BILL-06、FR-BILL-07 |
| FR-ACC-03 |
游客数据迁移:登录后合并游客期间产生的数据 |
P0 |
V1 |
合并后游客期的报告、收藏、记忆归属新账号;重复合并幂等;多设备场景以先登录设备为准并提示 |
FR-ACC-02 |
| FR-ACC-04 |
手机号验证码登录 |
P0 |
V1 |
作为华为账号登录之外的唯一独立兜底通道(一键登录已推 V2)。验证码 6 位数字、5 分钟有效、一次性使用、校验失败 5 次即作废;与华为账号可互相绑定;两条通道不得互相依赖(华为侧异常时手机号仍可登录,反之亦然) |
TD-15、TD-32、FR-ACC-14 |
| FR-ACC-14 |
短信通道防刷(新增,原 NFR-SEC-05 未覆盖短信场景) |
P0 |
V1 |
单号码 60s 内 1 条 / 1h ≤ 5 条 / 24h ≤ 10 条;单 IP 24h ≤ 20 条、单设备 ≤ 10 条;触发阈值后强制人机校验;号码在日志与后台一律掩码;日发送量突增告警生效。验收需有脚本化刷量测试证明拦截有效 |
TD-32、NFR-SEC-03/05 |
| FR-ACC-13 |
华为账号一键登录获取手机号 |
P1 |
V2 |
需企业开发者资质 + quickLoginMobilePhone scope。V1 不做(TD-29),仅为体验优化非能力缺口 |
TD-15、TD-29 |
| FR-ACC-05 |
会话管理:access/refresh 双令牌,可撤销 |
P0 |
V1 |
登出后旧令牌立即失效;refresh 令牌服务端可单条撤销 |
— |
| FR-ACC-06 |
个人资料维护(昵称、头像、性别、年龄段) |
P0 |
V1 |
修改即时生效;头像走私有桶签名访问 |
— |
| FR-ACC-07 |
用户中心:报告入口、我的记忆、我的收藏、剩余额度、设置 |
P0 |
V1 |
各入口可达且状态正确(无报告时显示引导);额度展示为「今日剩余 N 次」,不出现价格与购买入口 |
FR-BILL-07 |
| FR-ACC-08 |
授权同意记录:协议、隐私政策、人脸单独同意 |
P0 |
V1 |
人脸授权为独立单独同意页,非混入总协议;同意记录含版本号与时间,可查询 |
CR-01 |
| FR-ACC-09 |
账号注销:数据删除 |
P0 |
V1 |
提交后 7 日内彻底删除个人数据;期间可撤销;删除完成有记录可审计 |
CR-03 |
| FR-ACC-15 |
清空我的照片(新增,不注销账号) |
P0 |
V1 |
用户可一键删除全部已上传照片与派生结果图,保留账号与诊断结论;删除后 COS 对象与数据库引用同步清除,签名 URL 立即失效;操作有二次确认与结果回执,并写审计日志。⚠️ 涉及人脸相关数据删除,须纳入合规检查清单(CR-02) |
CR-02、CR-03 |
| FR-ACC-10 |
个人信息导出 |
P1 |
V2 |
用户可申请导出自身数据,机器可读格式 |
CR-03 |
| FR-ACC-11 |
未成年人保护:年龄判定与功能限制 |
P0 |
V1 |
识别为未成年时禁用外观评价类内容并提供监护提示(V1 无付费功能,故无付费限制项) |
CR-04 |
| FR-ACC-12 |
多形象档案(帮家人诊断) |
P2 |
V2+ |
数据模型 V1 预留 profile_id,不实现 UI |
— |
2.2 MEM 记忆系统
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-MEM-01 |
分层记忆模型 L0~L2 落地(身份/画像/显式偏好) |
P0 |
V1 |
三层均可写入、可查询、可注入;数据结构含置信度与来源 |
— |
| FR-MEM-02 |
报告结论自动写入 L1 画像记忆 |
P0 |
V1 |
报告完成后 L1 记忆同步生成,置信度继承诊断置信度 |
FR-RPT-06 |
| FR-MEM-03 |
显式偏好抽取与写入 L2 |
P0 |
V1 |
用户明确表达偏好(「我不穿裙子」)后写入成功率 ≥ 90%,并给用户回执确认 |
FR-AGT-08 |
| FR-MEM-04 |
记忆注入 Agent 上下文 |
P0 |
V1 |
注入 token ≤ 1400(V1 实际 ≤ 1200,L3 不启用;分项预算见架构 §7.2 为唯一事实源。原「≤ 500」系误写);有画像用户的回答需体现画像(人工抽检 ≥ 80% 体现);硬禁忌在任何裁剪策略下都不得被丢弃 |
FR-AGT-03、架构 §7.2 |
| FR-MEM-05 |
「我的记忆」页面:可见、可编辑、可删除 |
P0 |
V1 |
用户可看到每条记忆的内容、来源、时间;删除后不再注入;编辑后优先级最高 |
CR-02 |
| FR-MEM-06 |
置信度与衰减机制 |
P1 |
V1 |
定时任务按规则降低未强化记忆的置信度;低于阈值不再注入 |
— |
| FR-MEM-07 |
冲突消解:显式 > 报告 > 隐式,新 > 旧 |
P0 |
V1 |
同 key 冲突时按规则裁决并写变更事件;用户编辑不被自动覆盖 |
FR-MEM-05 |
| FR-MEM-08 |
隐式行为推断 + 待确认机制 |
P1 |
V2 |
同属性连续 3 次拒绝生成待确认候选;确认后才生效;不打断当前任务 |
— |
| FR-MEM-09 |
L3 事件记忆与语义召回 |
P1 |
V2 |
可按语义召回历史事件(「上次面试穿的那套」) |
— |
| FR-MEM-10 |
L4 会话滚动摘要 |
P1 |
V2 |
长会话摘要压缩后 token ≤ 400,关键约束不丢失 |
— |
| FR-MEM-11 |
L5 衣橱记忆 |
P1 |
V2 |
与衣橱模块联动 |
FR-WDB-01 |
| FR-MEM-12 |
记忆变更审计 |
P0 |
V1 |
每次写入/衰减/冲突/用户编辑均留事件记录 |
— |
2.3 RPT 美学报告
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-RPT-01 |
初级报告(免费)内容生成 |
P0 |
V1 |
覆盖需求文档 §2.2 全部模块;结构完整率 100%;无空模块 |
— |
| FR-RPT-02 |
触发时机:首次进入核心功能前引导生成 |
P0 |
V1 |
未有报告的用户进入换装/Agent 时出现引导,可跳过但有降级说明 |
FR-RPT-11 |
| FR-RPT-03 |
拍照/上传引导与质量校验 |
P0 |
V1 |
不合格照片(多人/遮挡/过暗/侧脸过大)在分析前拦截并给出具体重拍指引,拦截准确率 ≥ 85% |
— |
| FR-RPT-04 |
问卷采集(生活场景、风格倾向、禁忌) |
P0 |
V1 |
问卷完成率 ≥ 80%;可跳过项不阻断生成 |
— |
| FR-RPT-05 |
视觉分析:体型 / 色彩季型 / 脸型 |
P0 |
V1 |
与人工标注一致率:体型 ≥ 80%、季型 ≥ 75%、脸型 ≥ 80%(各 30~50 样本) |
TD-05、TD-06 |
| FR-RPT-06 |
结构化诊断结论(32 维度字典) |
P0 |
V1 |
每维度输出 value + confidence + evidence + rule_hits;缺失维度显式标注 |
FR-KB-04、TD-31 |
| FR-RPT-07 |
报告文案生成(规则约束 + LLM 表达) |
P0 |
V1 |
硬禁忌违反数 = 0;结论与诊断值一致(无自相矛盾);黄金集 30 例人工评审通过 |
FR-KB-05 |
| FR-RPT-08 |
生成后校验 |
P0 |
V1 |
校验项:禁忌违反、色值在色板内、维度引用存在、无绝对化医疗/身材贬损表述;不通过则重试或降级模板 |
— |
| FR-RPT-09 |
生成进度与等待体验 |
P0 |
V1 |
阶段文案随进度更新;超阈值转后台生成 + 完成推送;用户离开页面不丢任务 |
FR-TASK-01 |
| FR-RPT-10 |
报告页展示与交互 |
P0 |
V1 |
分模块展开;术语配白话释义;低置信度维度降级表述 |
— |
| FR-RPT-11 |
无照片/拒绝授权的降级路径 |
P0 |
V1 |
可用问卷生成简版画像,明确告知能力差异,不阻断产品使用 |
— |
| FR-RPT-12 |
报告分享(长图) |
P0 |
V1 |
服务端渲染,跨设备一致;含 AI 生成显式标识;分享链接可失效 |
TD-12、CR-05 |
| FR-RPT-13 |
重新生成 / 更新报告 |
P1 |
V1 |
有频控与配额(每 30 天 1 次,任务可 +1);历史版本保留可对比 |
FR-BILL-04 |
| FR-RPT-14 |
报告与其他模块联动 |
P0 |
V1 |
报告结论驱动 Agent 建议、换装推荐、发型推荐 |
FR-MEM-02 |
| FR-RPT-15 |
全面报告内容 |
P1 |
V2 |
覆盖需求文档 §2.3 全部模块;付费前有清晰的内容对比说明。V1 仅做预约留资,且预览卡片不展示任何价格(TD-28) |
FR-BILL-09 |
| FR-RPT-16 |
全面报告付费触发点 |
P1 |
V2 |
触发点不影响免费体验完整性;无诱导性欺骗文案 |
— |
| FR-RPT-17 |
报告 PDF 导出 |
P2 |
V2 |
含 AI 标识元数据 |
— |
FR-RPT-18 |
五行/命理模块 |
— |
不做 |
已决定 V1 与 V2 均不纳入(TD-31)。诊断维度由 34 项减为 32 项;编号不再复用 |
— |
| FR-RPT-19 |
报告结论的认同/修正入口(新增) |
P0 |
V1 |
每个可修正维度旁提供「不准?修正一下」入口;用户修正后置信度置 1.0 且标记 user_confirmed,并即时反映到 L1 记忆;认同与修正行为全量埋点。⚠️ 这是 §3.1「结论认同率 > 70%、修正率 < 15%」两项核心质量指标的唯一数据来源,缺它则该指标无法计算 |
FR-MEM-05、FR-SYS-06 |
| FR-RPT-20 |
全面报告预约留资(新增) |
P0 |
V1 |
初级报告结果页底部展示预览卡片(模糊目录 + 内容清单,不含价格);点击留资并埋点;记录预约数/预约率/停留时长/目录章节点击分布。⚠️ 这是 V1 唯一的商业化验证数据来源(预约率 ≥ 8% 为 V2 立项门槛),缺它则 V1 上线后无法回答"要不要做付费报告" |
FR-BILL-07、FR-SYS-06 |
2.4 AGT 穿搭 Agent
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-AGT-01 |
文字对话与流式输出 |
P0 |
V1 |
首字 p95 < 2s(NFR-PERF-02);整轮 p95 < 15s(NFR-PERF-02b);断线可恢复 |
NFR-PERF-02 |
| FR-AGT-02 |
意图识别(场景咨询/单品搭配/风格建议/越界) |
P0 |
V1 |
验证门槛 ≥ 85%,上线门槛 ≥ 90%(两档口径见美学报告 §9.4);越界意图(医疗、身材贬损、他人评价)正确拒答 |
— |
| FR-AGT-03 |
画像注入 + token 预算控制 |
P0 |
V1 |
输入 token ≤ 4200(V1 实际 ≤ 4000;分项预算见架构 §7.2 为唯一事实源。原 3700 因漏算会话近轮原文而偏低);预算超限时按既定优先级裁剪而非报错;硬禁忌永不裁剪 |
FR-MEM-04、架构 §7.2 |
| FR-AGT-04 |
知识库混合检索 |
P0 |
V1 |
检索 p95 < 200ms;黄金集 Top-5 命中率 ≥ 80% |
FR-KB-06 |
| FR-AGT-05 |
生成后校验(禁忌违反 = 0、色值在板内) |
P0 |
V1 |
黄金集 100 例违反数 = 0 |
FR-KB-05 |
| FR-AGT-06 |
搭配方案结构化输出(卡片) |
P0 |
V1 |
输出可解析为结构化单品组合,字段完整 |
— |
| FR-AGT-07 |
快捷问题入口 |
P0 |
V1 |
首屏提供场景化快捷问题,点击直达 |
— |
| FR-AGT-08 |
显式偏好抽取与回执 |
P0 |
V1 |
抽取成功后给用户可见回执(「已记住」),可撤销 |
FR-MEM-03 |
| FR-AGT-09 |
对话历史保存与会话列表 |
P0 |
V1 |
会话可回看;保留期符合数据保留策略 |
CR-03 |
| FR-AGT-10 |
无画像用户的降级路径 |
P0 |
V1 |
无画像时给通用建议 + 报告引导,不空转 |
FR-RPT-11 |
| FR-AGT-11 |
知识缺口埋点 |
P0 |
V1 |
无检索结果的 query 全量记录,可导出驱动内容生产 |
FR-KB-10 |
| FR-AGT-12 |
输入输出双向内容审核 |
P0 |
V1 |
输入拦截、输出拦截均生效;审核不可用时 fail-close |
CR-06 |
| FR-AGT-13 |
「为什么推荐」解释链 |
P1 |
V2 |
解释的事实部分来自知识库路径与规则 ID,非模型自由生成 |
FR-KB-07 |
| FR-AGT-14 |
联动换装试穿 |
P1 |
V2 |
从建议卡片一键发起换装任务 |
FR-TRY-01 |
| FR-AGT-15 |
联动发型设计 |
P1 |
V2 |
同上 |
FR-HAIR-01 |
| FR-AGT-16 |
图片输入理解(穿搭评价) |
P1 |
V2 |
支持上传穿搭照获得点评,评价不含贬损表述 |
TD-04 |
| FR-AGT-17 |
语音输入 |
P1 |
V2 |
端侧识别;识别失败可切文字 |
TD-14 |
| FR-AGT-18 |
主动推荐(天气/日程驱动) |
P2 |
V3 |
— |
— |
2.5 TRY 智能试穿
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-TRY-01 |
换装任务提交与出图(三种工作流) |
P0 |
V1 |
任务成功率 ≥ 90%(排除输入不合格);p95 < 40s(不含排队) |
TD-00 改造 |
| FR-TRY-02 |
输入前置校验(人像质量、单品白底图规格) |
P0 |
V1 |
不合格输入在提交前拦截并说明原因,不消耗配额(拦截发生在预扣之前) |
FR-KB-08 |
| FR-TRY-03 |
结果图审核与合规标识 |
P0 |
V1 |
100% 经审核 + 显式水印 + 隐式元数据 |
CR-05、CR-06 |
| FR-TRY-04 |
排队与容量保护 |
P0 |
V1 |
展示排队位次与预估时间;超阈值拒绝新任务并提示 |
FR-TASK-02 |
| FR-TRY-05 |
失败退还配额 |
P0 |
V1 |
不可重试失败立即退还;对账日报中无「扣额未出图」记录 |
FR-BILL-05 |
| FR-TRY-06 |
结果收藏与管理 |
P0 |
V1 |
可收藏、删除;删除后存储对象同步清理 |
— |
| FR-TRY-07 |
结果对比(原图/换装后) |
P1 |
V1 |
前后对比视图 |
— |
| FR-TRY-08 |
基于画像的单品推荐入口 |
P0 |
V1 |
推荐单品需 tryon_ready,避免推荐了却试不了 |
FR-KB-08 |
| FR-TRY-09 |
多单品组合试穿 |
P2 |
V2 |
— |
— |
2.6 HAIR 发型设计
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-HAIR-01 |
发型更换与发色调整 |
P0 |
V1 |
成功率 ≥ 90%;p95 < 40s |
— |
| FR-HAIR-02 |
发型库适配标签打标(脸型/量感/直曲/长度/卷度/刘海/正式度) |
P0 |
V1 |
60 款发型 100% 完成打标并通过抽检复核 |
FR-KB-03 |
| FR-HAIR-03 |
基于脸型与画像的发型推荐 |
P0 |
V1 |
推荐结果不含该脸型禁忌发型(规则校验通过率 100%) |
FR-RPT-06 |
| FR-HAIR-04 |
结果审核与合规标识 |
P0 |
V1 |
同 FR-TRY-03 |
CR-05 |
2.7 KB 美学知识库
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-KB-01 |
本体 Schema 与属性字典定稿 |
P0 |
V1 |
12 类实体的字段、枚举值、必填项全部明确并落库 |
— |
| FR-KB-02 |
自建色板(12 季型 Lab 色值) |
P0 |
V1 |
每季型含主色/点缀色/禁忌色,色值可用于计算;命名自研规避商标 |
TD-18 |
| FR-KB-03 |
实体内容录入(单品、发型、场合、材质等) |
P0 |
V1 |
达到冷启动规模目标(见知识库文档 §9);每条含 source 与 license |
— |
| FR-KB-04 |
规则库(建议/禁忌,含硬约束标记) |
P0 |
V1 |
覆盖体型×场合、季型×色彩、脸型×发型三大矩阵;每条含依据说明与审核人 |
FR-ADM-02 |
| FR-KB-05 |
规则引擎求值与硬约束校验 |
P0 |
V1 |
求值 p95 < 50ms;硬约束校验可拦截违规输出 |
— |
| FR-KB-06 |
混合检索链路(硬过滤+规则+向量+关键词+重排) |
P0 |
V1 |
黄金集 Top-5 命中率 ≥ 80%;硬过滤零漏(禁忌项不得出现在候选中) |
TD-08 |
| FR-KB-07 |
图谱关系与解释路径输出 |
P1 |
V1 |
1~3 跳查询可返回路径,供解释链使用 |
TD-09 |
| FR-KB-08 |
单品白底图流水线(抠图+规格校验+入库) |
P0 |
V1 |
10 件样本走通全流程;tryon_ready 标志准确;抠图人工质检通过率 ≥ 90% |
TD-07 |
| FR-KB-09 |
内容审核与发布流程(草稿→审核→发布→归档) |
P0 |
V1 |
未审核内容不进入线上检索;发布可回滚 |
FR-ADM-03 |
| FR-KB-10 |
知识缺口发现与优先级排序 |
P0 |
V1 |
缺口按命中频次排序,可导出为内容生产任务 |
FR-AGT-11 |
| FR-KB-11 |
黄金测试集与回归 |
P0 |
V1 |
≥ 100 条测试用例;CI 中自动跑;指标退化阻断合并 |
— |
| FR-KB-12 |
视觉模型辅助属性标注 |
P1 |
V1 |
单品属性自动预标注 + 人工复核;预标注准确率 ≥ 70%(降低人工量即达标) |
TD-04 |
| FR-KB-13 |
趋势内容更新机制 |
P2 |
V2 |
— |
— |
2.8 TASK 任务中心
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-TASK-01 |
统一任务提交与状态查询 |
P0 |
V1 |
所有长耗时任务(报告/换装/发型)统一入口;状态机完整 |
— |
| FR-TASK-02 |
进度与预估时间 |
P0 |
V1 |
阶段文案 + 排队位次 + 预估剩余时间(基于历史 p50) |
— |
| FR-TASK-03 |
任务列表页(进行中/已完成/失败) |
P0 |
V1 |
失败项有原因与重试入口 |
— |
| FR-TASK-04 |
完成推送通知 |
P0 |
V1 |
推送到达率 ≥ 90%,分母为「已授权通知的用户」(TD-17 指出鸿蒙通知授权默认关闭,用全体用户作分母则该指标永远不可能达标,且会掩盖真实的推送链路问题);未授权用户由应用内任务中心轮询兜底,不计入本指标;文案不含敏感结论 |
TD-17 |
| FR-TASK-05 |
幂等与重试 |
P0 |
V1 |
相同幂等键不重复扣减配额、不重复出图;可重试错误自动重试并有上限 |
— |
| FR-TASK-06 |
任务取消 |
P1 |
V1 |
排队中可取消并退还配额;执行中标记取消,不再返回结果 |
— |
| FR-TASK-07 |
死信与告警 |
P0 |
V1 |
连续失败进死信队列并告警,不静默丢弃 |
— |
2.9 BILL 配额与计量
⚠️ V1 不收费(TD-28)。本模块在 V1 的职责是「配额限制 + 计量」,不含任何支付、订单、购买能力。
架构约束(不可妥协):V1 的配额账本与 V2 的点数账本必须是同一张表 —— V1 使用 system_grant(系统发放)、consume(消耗)、refund(退还)三种流水类型,V2 增加 purchase(购买)与 gift(赠送)。这样 V2 上支付时不需要数据迁移,也不需要重写扣减逻辑。
⚠️ refund 不可省略:它是预扣三段式(FR-BILL-05)的必需类型,也是熔断降级时退还额度(NFR-COST-02)的唯一途径。原文写「两种」属漏写,已更正。
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-BILL-01 |
配额定义与周期重置 |
P0 |
V1 |
按周期(日/月/终身)正确重置;跨时区按 UTC+8 统一;额度耗尽有明确提示与获取途径 |
— |
| FR-BILL-02 |
配额账本与流水 |
P0 |
V1 |
余额可由流水完整重算校验;每日自动对账无差异;流水类型可扩展至购买/赠送而无需改表结构 |
— |
| FR-BILL-03 |
任务奖励额度发放 |
P0 |
V1 |
签到、完善资料、反馈、邀请、分享完成即到账;发放幂等(同一任务同一周期不重复发放) |
— |
| FR-BILL-04 |
配额消耗表(配置化) |
P0 |
V1 |
各功能消耗量可配置,不硬编码;改配置不需发版 |
TD-28 |
| FR-BILL-05 |
预扣-确认-退还三段式 |
P0 |
V1 |
长耗时任务失败自动退还;无「扣了额度但没出图」case;退还幂等 |
FR-TASK-05 |
| FR-BILL-06 |
服务端硬校验与防绕过 |
P0 |
V1 |
额度校验在服务端,客户端提示仅为体验;伪造请求无法超额;设备/账号/IP 三重限流 |
NFR-SEC-04 |
| FR-BILL-07 |
额度耗尽文案约束 |
P0 |
V1 |
提示中不出现任何价格、购买、会员、升级字样;只提供「等待恢复」与「做任务换额度」两条路径 |
— |
| FR-BILL-08 |
成本归因记录 |
P0 |
V1 |
每次 AI 调用落 ob_ai_call,可按功能/模型/用户聚合;这是 V2 定价的唯一数据来源,不可裁剪 |
NFR-COST-01 |
| FR-BILL-12 |
会员页静态展示 + 「上线提醒我」留资(新增) |
P0 |
V1 |
展示 V2 规划权益的静态对比表,不含任何价格与购买按钮;「上线提醒我」点击即留资并埋点;记录曝光数与留资率。⚠️ 这是���阅意愿的唯一验证数据来源(与 FR-RPT-20 验证的单次付费意愿是两件事,都需要) |
FR-BILL-07、FR-SYS-06 |
FR-BILL-09 |
华为 IAP 商品购买 |
P1 |
V2 |
服务端收据校验;purchase_token 唯一防重复发货;掉单可补发 |
TD-16 |
FR-BILL-10 |
会员等级与权益 |
P1 |
V2 |
权益判定集中在 billing 域,其他模块只查询 |
— |
FR-BILL-11 |
订单与退款对账 |
P1 |
V2 |
日对账报表;异常订单告警 |
— |
编号变更说明:原 FR-BILL-02(点数钱包)语义改为「配额账本」;原 FR-BILL-06FR-BILL-08(IAP / 会员 / 对账)顺延为 FR-BILL-09FR-BILL-11 且全部推至 V2;原 FR-BILL-09(成本归因)改为 FR-BILL-08。新增 FR-BILL-06(服务端硬校验)与 FR-BILL-07(文案约束)两条 V1 需求。
2.10 ADM 运营后台(极简版)
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-ADM-01 |
独立登录与权限(运营/顾问/管理员) |
P0 |
V1 |
与用户端账号体系隔离;操作留审计日志 |
— |
| FR-ADM-02 |
知识条目与规则的增删改查 |
P0 |
V1 |
顾问可独立完成内容维护,无需工程介入 |
FR-KB-04 |
| FR-ADM-03 |
素材上传与抠图任务触发 |
P0 |
V1 |
批量上传、查看抠图结果、标记 tryon_ready |
FR-KB-08 |
| FR-ADM-04 |
内容发布与回滚 |
P0 |
V1 |
发布后线上检索生效;可回滚到上一版本 |
FR-KB-09 |
| FR-ADM-05 |
知识缺口看板 |
P1 |
V1 |
按频次展示缺口,支持导出 |
FR-KB-10 |
| FR-ADM-06 |
用户与配额查询(客服支持) |
P1 |
V1 |
可按用户查任务状态与配额流水,用于客诉处理(V1 无订单概念) |
— |
| FR-ADM-07 |
版本管理与效果看板 |
P2 |
V2 |
— |
— |
2.11 WDB 我的衣橱
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-WDB-01 |
衣物录入(拍照 + 自动属性识别) |
P1 |
V2 |
属性自动识别准确率 ≥ 70%,可人工修正 |
TD-04 |
| FR-WDB-02 |
衣橱管理与分类 |
P1 |
V2 |
— |
— |
| FR-WDB-03 |
基于真实衣橱的搭配建议 |
P1 |
V2 |
建议只使用用户实际拥有的单品 |
FR-MEM-11 |
2.12 SYS 系统级需求
| 编号 |
需求 |
P |
版本 |
验收标准 |
依赖 |
| FR-SYS-01 |
统一鉴权与越权防护 |
P0 |
V1 |
所有资源访问校验归属;越权测试用例全通过 |
— |
| FR-SYS-02 |
统一错误码与用户可读文案 |
P0 |
V1 |
每个错误码有 message + hint;无裸露堆栈 |
— |
| FR-SYS-03 |
图片直传(预签名 URL) |
P0 |
V1 |
图片不经应用服务器;上传失败可重试 |
— |
| FR-SYS-04 |
LLM 网关(路由/降级/成本/Prompt 版本) |
P0 |
V1 |
主供应商故障自动切备用,切换耗时 < 3s;成本 100% 记录 |
TD-04 |
| FR-SYS-05 |
三张监控看板 |
P0 |
V1 |
业务漏斗、AI 成本、任务健康均可用 |
TD-24 |
| FR-SYS-06 |
全链路埋点 |
P0 |
V1 |
漏斗关键节点无缺失(上线前用测试账号走查验证) |
TD-23 |
| FR-SYS-07 |
成本预警 |
P0 |
V1 |
日成本环比突增超阈值告警;场景级日预算生效 |
NFR-COST-02 |
| FR-SYS-08 |
外部依赖降级策略 |
P0 |
V1 |
各依赖失效时表现符合架构文档 §2 表格;审核为 fail-close |
— |
| FR-SYS-09 |
数据备份与恢复演练 |
P0 |
V1 |
至少完成一次真实恢复演练并记录 RTO/RPO |
— |
3. 合规需求(不可裁剪)
这些需求不接受「先上线后补」。缺失将直接导致无法上架或面临处罚。详见《合规与安全方案》。
| 编号 |
需求 |
依据 |
验收标准 |
| CR-01 |
人脸信息单独同意 + 处理目的告知 |
人脸识别技术应用安全管理办法 |
独立同意页;拒绝后仍可使用降级功能;同意记录含版本与时间 |
| CR-02 |
人脸原图不持久化,仅保留派生特征 |
同上 + 最小必要原则 |
处理完成后原图删除;临时桶生命周期 ≤ 2 小时;抽查无残留 |
| CR-03 |
数据保留与删除:注销后 7 日内彻底删除 |
个人信息保护法 |
删除任务可审计;对象存储同步清理 |
| CR-04 |
未成年人保护 |
未成年人网络保护条例 |
未成年账号禁用外观评价与付费;有监护提示 |
| CR-05 |
AI 生成内容双重标识(显式 + 隐式元数据) |
人工智能生成合成内容标识办法 + GB 45438-2025 |
所有生成物含可见标识;元数据含属性信息、服务提供者编码、27 位内容编号;经 CDN/压缩/客户端保存后元数据仍存在 |
| CR-06 |
内容审核:输入与输出双向 |
生成式人工智能服务管理暂行办法 |
用户上传图、生成图、用户文本、模型输出、知识内容全覆盖;审核不可用时 fail-close |
| CR-07 |
关键词拦截库 |
备案要求 |
拦截库可维护;命中记录留存 |
| CR-08 |
大模型登记 + 算法备案 |
生成式 AI 管理暂行办法 + 算法推荐管理规定 |
取得登记号/备案号;界面显著位置公示模型名称与编号 |
| CR-09 |
隐私政策与用户协议 |
多项法规 |
明确 AI 生成、数据处理、第三方共享清单;版本化留存 |
| CR-10 |
个人信息保护影响评估(PIA) |
个人信息保护法 |
完成 PIA 报告并归档 |
| CR-11 |
日志留存 |
深度合成管理规定 |
生成记录与审核日志留存 ≥ 6 个月 |
| CR-12 |
不得提供医疗、命理等越界结论 |
广告法 + 内容合规 |
报告与对话中无诊疗承诺、无绝对化效果承诺;越界问题正确拒答 |
4. 非功能需求
4.1 性能(NFR-PERF)
🔒 本节是性能指标的唯一定义位置。产品方案 §8.3.1、美学报告 §10.2、穿搭 Agent §7.1/§8.3、技术架构 §12.1 一律引用本表编号,不得复述数值。此前五处文档给出过四套互相矛盾的数值,已在本轮收口。
| 编号 |
指标 |
目标 |
说明 |
| NFR-PERF-01 |
普通 API p95 |
< 300ms |
不含 AI 调用的读写接口 |
| NFR-PERF-02 |
Agent 首字 p95 |
< 2s |
这是 UX 上唯一关键的延迟指标(输出为流式) |
| NFR-PERF-02b |
Agent 整轮完成 p95 |
< 15s |
按输出约 800 token、生成速率 60~100 tok/s 推算;原定 8s 不可达,已修正 |
| NFR-PERF-03 |
初级报告 p50 / p95 |
< 45s / < 90s |
视觉分析 + LLM + 渲染串行;原产品方案的 60s 过紧,以本表为准 |
| NFR-PERF-04 |
全面报告 p95 |
< 180s |
V2 指标,需在 V2 立项时按实测重新基线 |
| NFR-PERF-05 |
换装出图 p95(不含排队) |
见下方两段式 |
不可用单一数值表达 |
| NFR-PERF-06 |
知识检索 p95 |
< 200ms |
硬过滤 < 50ms |
| NFR-PERF-07 |
长图渲染 p95 |
< 8s |
Playwright 服务端渲染 |
| NFR-PERF-08 |
客户端首屏 |
< 1.5s |
— |
4.1.1 换装/发型的性能必须用「现状基线 → 目标值」两段式表达
这是此前冲突最严重的一处(FR-TRY-01 写 p95 < 40s,产品方案写前端超时 ≥ 320s)。两个数字分别是目标与现状,但没有任何文档写明这层关系,导致 FR-TRY-01 按现有接口实测必然不达标。
| 阶段 |
换装 p95 |
发型 p95 |
来源 |
| 现状基线 |
待 T-P0-13 实测填入(前端超时按 ≥ 320s 设置,说明现状可能接近该量级) |
待 T-P0-14 实测填入 |
现有服务实测 |
| V1 上线门槛 |
≤ 现状基线,且不得劣化 |
同 |
不以性能优化为 V1 前置条件 |
| 优化目标 |
< 40s |
< 60s |
改造后(TD-00),排期不绑定 V1 |
纪律:FR-TRY-01 的验收标准改为「不劣于现状基线」,40s 作为优化目标单独跟踪。在 T-P0-13/14 完成实测前,任何文档不得引用 40s 作为验收线。
4.2 可靠性(NFR-REL)
| 编号 |
指标 |
目标 |
| NFR-REL-01 |
月度可用性 |
≥ 99.5%(约 3.6h/月停机预算)。产品方案原写 > 99.9% 已废弃 —— V1 是单可用区 Docker Compose 部署(架构 §14.1),无跨区冗余、无自动故障转移,承诺 99.9%(43min/月)在架构上不可兑现。99.9% 需等 V2 迁 TKE 多可用区后再谈 |
| NFR-REL-02 |
任务最终成功率(含重试) |
≥ 95% |
| NFR-REL-03 |
数据零丢失 |
已提交任务不因重启丢失 |
| NFR-REL-04 |
RPO / RTO |
RPO ≤ 5min,RTO ≤ 1h(需演练验证) |
4.3 成本(NFR-COST)
| 编号 |
要求 |
| NFR-COST-01 |
所有付费调用 100% 可归因到功能与用户(落 ob_ai_call,不允许"先上线后补埋点") |
| NFR-COST-02 |
全局日成本熔断生效(自动降级,非仅告警):日累计成本达 60/80/90/100% 阈值时按既定顺序降级;在途任务放行;被熔断拒绝的请求必须退还配额(不得扣减);运营后台可查看状态并手动解除。验收:压测注入成本后四档降级均可复现,且配额账本无净扣减。详见架构 §13.3 |
| NFR-COST-02b |
场景级日预算:单功能超预算自动切轻量模型或暂停,并告警 |
| NFR-COST-03 |
LLM 缓存命中率可观测,固定前缀设计到位 |
| NFR-COST-04 |
GPU 实例按需启停,空闲不计费 |
4.4 安全(NFR-SEC)
| 编号 |
要求 |
| NFR-SEC-01 |
敏感数据传输与存储加密;密钥不落代码 |
| NFR-SEC-02 |
结果图私有桶 + 短期签名 URL + 防盗链 |
| NFR-SEC-03 |
日志脱敏(手机号、UnionID、诊断结论、图片地址) |
| NFR-SEC-04 |
Prompt 注入防护:用户内容不得影响系统指令与工具决策 |
| NFR-SEC-05 |
防刷:设备指纹 + 频控 + 异常注册风控 + 短信轰炸防护(FR-ACC-14,短信是被刷时的直接现金损失,且没有配额兜底) |
4.5 可维护性(NFR-MAINT)
| 编号 |
要求 |
| NFR-MAINT-01 |
契约先行:接口 schema 先定义,客户端类型由 OpenAPI 生成 |
| NFR-MAINT-02 |
ruff + mypy strict 进 CI,失败阻断合并 |
| NFR-MAINT-03 |
域间依赖规则由工具校验,禁止跨域直查表 |
| NFR-MAINT-04 |
黄金集回归进 CI,指标退化阻断合并 |
| NFR-MAINT-05 |
规则/色板/定价/模型路由全部配置化,不硬编码 |
| NFR-MAINT-06 |
数据库变更必须走 Alembic 且向后兼容 |
4.6 体验(NFR-UX)
| 编号 |
要求 |
| NFR-UX-01 |
所有长耗时操作有进度反馈与可离开能力 |
| NFR-UX-02 |
所有失败态有原因说明 + 下一步指引 |
| NFR-UX-03 |
专业术语必须配白话释义 |
| NFR-UX-04 |
外观相关表述遵循「描述而非评判」,不使用贬损性词汇 |
| NFR-UX-05 |
低置信度结论使用不确定表述,不做断言 |
5. V1 范围矩阵(一页看清)
5.1 V1 包含(P0 全量)
| 模块 |
V1 交付内容 |
| 账号 |
华为账号授权登录 + 手机号验证码、游客与迁移、资料、同意授权、注销、未成年保护 |
| 记忆 |
L0~L2 + 报告写入 + 注入 + 我的记忆页 + 冲突消解 + 审计 |
| 报告 |
初级报告完整闭环(引导→拍照→问卷→分析→诊断→文案→校验→长图→分享) |
| Agent |
文字对话、意图识别、画像注入、混合检索、生成后校验、偏好抽取、缺口埋点 |
| 换装 |
三工作流出图、前置校验、审核标识、排队保护、失败退还配额、收藏 |
| 发型 |
发型更换与发色、60 款打标、基于脸型推荐 |
| 知识库 |
本体定稿、自建色板、冷启动内容、规则库、混合检索、白底图流水线、黄金集 |
| 任务中心 |
统一提交与状态、进度、列表、推送、幂等、死信告警 |
| 配额与计量 |
配额定义与重置、配额账本与流水、任务奖励发放、消耗表配置化、预扣三段式、服务端硬校验、成本归因埋点。⚠️ 不含支付、订单、购买 |
| 后台 |
极简版:知识与规则维护、素材上传、发布回滚、缺口看板 |
| 系统 |
鉴权、错误码、直传、LLM 网关、三看板、埋点、成本预警、降级、备份演练 |
| 合规 |
CR-01 ~ CR-12 全部 |
5.2 V1 明确不做
| 内容 |
原因 |
归属 |
| 全部支付能力(IAP、会员、点数购买、订单、退款、对账) |
V1 完全不收费,用配额限制控成本。定价需要 V1 采集的真实数据才有依据(TD-28) |
V2 |
| 全面报告 |
需先用 V1 预约率验证意愿;V1 预览卡片不展示价格 |
V2 |
| 广告变现 |
V1 不接任何广告,避免影响首发体验与评价 |
V2+ |
| 华为账号一键登录 |
需企业资质 + scope;属体验优化非能力缺口(TD-29) |
V2 |
| 我的衣橱 |
依赖属性识别与记忆 L5,工作量大 |
V2 |
| 语音输入、图片输入理解 |
非核心闭环 |
V2 |
| 联动试穿/联动发型(从 Agent 一键跳转) |
各自功能先独立稳定 |
V2 |
| 解释链自然语言化 |
数据结构 V1 已具备,展示层后置 |
V2 |
| 多形象档案 |
仅预留数据字段 |
V2+ |
| 五行/命理 |
永久不做:收益边缘但渠道审核风险全局(TD-31) |
不做 |
| 多端(iOS/Android) |
见 TD-01 |
V2+ |
5.3 V1 的前置阻塞项(不属于开发,但决定能否上线)
| 事项 |
状态 |
说明 |
| 大模型登记 + 算法备案 |
✅ 已完成 |
原周期 2~4 个月的关键路径已解除。转为持续义务:编号界面公示、备案范围一致性、变更备案(CR-08) |
| 备案覆盖的模型清单核实 |
⏳ 唯一开放项 |
若备案未覆盖 DeepSeek + GLM 两家,双路由属超范围,需办变更或 V1 先单路由(TD-19) |
华为企业开发者资质 |
✅ 已解除依赖 |
V1 不接 IAP,一键登录降级 V2(TD-29) |
| 全职形象顾问到岗 |
🔴 新的关键路径 |
规则库产能直接决定 M2 排期(TD-27) |
| 单品素材自采产能 |
🔴 新的关键路径 |
300 件 tryon_ready 需按周产能倒排;备案解除后这是最长工序(TD-26) |
6. 需求变更控制
| 情形 |
处理 |
| 新增 P0 需求 |
必须同时说明它挤掉哪个现有 P0,或延后哪个里程碑 |
| 合规需求(CR-xx) |
不可裁剪、不可降级,只能新增 |
| 验收标准调整 |
需在本文更新并记录原因,不允许口头放宽 |
| 优先级变更 |
在本文标注变更日期与原因 |
7. 相关文档
变更记录
| 日期 |
版本 |
变更 |
| 2026-08-13 |
v1.2 |
文档一致性评审修订。§4.1 升为性能指标唯一事实源,并修正三处不可达/不可兑现的目标:Agent 整轮 8s→15s(按 800 输出 token 与生成速率推算,8s 不可达)、可用性 99.9%→99.5%(V1 单可用区无冗余)、换装改「现状基线 → 目标值」两段式(40s 是改造目标、320s 是现状,此前混为一谈导致 FR-TRY-01 必然不达标)。NFR-COST-02 由「日成本预警」升级为「全局日成本熔断(自动降级)」 —— 原设计只有告警,而按人头发配额封不住总成本。FR-MEM-04 注入预算 500→1400、FR-AGT-03 总输入 3700→4200(原值漏算会话近轮原文)。FR-AGT-02 准确率拆验证/上线两档。配额流水由「两种」更正为三种(refund 不可省略)。新增 5 条需求:FR-ACC-14 短信防刷、FR-ACC-15 清空照片、FR-RPT-19 结论认同/修正入口、FR-RPT-20 全面报告预约留资、FR-BILL-12 会员页留资 —— 后三条此前"有指标但无数据来源"。FR-ACC-02 补入游客配额引用;FR-TASK-04 明确到达率分母为已授权用户 |
| 2026-08-13 |
v1.1 |
按业务决策收口调整需求范围。§2.9 BILL 由「权益与计费」改为「配额与计量」:移除 V1 全部支付能力,新增 FR-BILL-06(服务端硬校验防绕过)与 FR-BILL-07(额度耗尽文案不得出现价格字样);IAP/会员/对账顺延至 FR-BILL-09~11 并推至 V2。FR-ACC-04 改为手机号验证码登录(P0),一键登录移为 FR-ACC-13(V2)。FR-RPT-18 五行模块标记为永久不做。§5.2 新增「全部支付能力」「广告变现」两项 V1 不做。§5.3 前置阻塞项状态更新:备案已完成、企业资质依赖已解除,新的关键路径为全职顾问到岗与素材自采产能 |
| 2026-08-13 |
v1.0 |
首次建立统一需求编号体系,收拢五份需求文档 |