# 数字我 / Digital Me — 项目计划 > 「有脸、有声音、有知识库的另一个你」——个人 AI 数字分身 / Digital Twin。 ## 一句话定位 **不是**又一个知识库 App(那是 IMA / Notion AI / NotebookLM 的赛道), **而是**「替你出现的有脸有声音的 AI 分身」。 - IMA = 帮你做事的**隐形** AI 助理(无脸无声,文档/阅读/写作)。 - 数字我 = **替你现身**的 AI 化身(有脸有声,形象 + 声音 + 人格化知识三位一体)。 两者错位互补:IMA 帮你工作更快;数字我帮你**分身多地出现、长久被记住**。 ## 差异化原则(指导取舍) 1. 重「拟人交互」,轻「办公深度」——初期**不碰**长文档深度解析 / 复杂报告生成。 2. 形象/声音/人格三位一体;知识库只为「像你一样思考表达」服务,不做通用资料管理。 3. 记忆分层:不仅存知识,还录人生时间线、重要事件态度、口头禅——强化「这是你,不是通用 Bot」。 4. 隐私即壁垒:长期主打本地/私有部署(人脸声音不出本地)。MVP 先用 DashScope 云换速度。 ## 技术内核(已复用,非自建) 整条多模态管线搬自已验证的 `super-individual-app` 平台(其艺术家垂直 = The Digital Atelier)。本仓库是面向「复刻自己」的消费级独立产品。 | 能力 | 实现 | 状态 | |---|---|---| | 人格化对话 + RAG | Qwen / DashScope + `text-embedding-v3` | ✅ 已接 | | 形象捏脸 | 通义万相 wanx-style-repaint | ✅ 已接 | | 声音克隆 + TTS | CosyVoice v2(WebSocket) | ✅ 已接 | | 口播视频(口型同步) | 通义 EMO(audio→talking head) | ✅ 已接 | | 可嵌入「和我分身聊天」 | 公开 slug 路由 `/api/embed/:slug` | ✅ 已接 | | 社交分身(可授权社交节点) | 社交卡片 + 守护边界 + 公开 `/api/social/:token` | ✅ 已接 | ## 决策记录(本次已定) - **代码形态**:全新独立仓库 `digital-me`(非复用平台入口、非平台内 fork)。 - **MVP 首发场景**:个人 IP 分身(博主/咨询师/讲师)。 - **部署路线**:MVP 先用 DashScope 云;本地/私有部署作为后续高隐私版本卖点。 - **2026-07 定位收敛:去掉青少年版,只做成人版。** 删除 错题反考(quiz) + 家长监护(guardian) + `audience`/`EDITION` 分版机制;**互考擂台 + 排行榜**从青少年重归类为**成人通用裂变**保留。 共享内核(AI 管线 / altauth 短信微信登录 / moderation 内容安全)不变。 ## 路线图 ### 阶段 1 — MVP:个人 IP 分身(进行中) - [x] 后端骨架:auth + twins + knowledge(RAG) + avatar + voice + ask/speak + talk-video + 公开 embed - [x] 后端韧性:缺 AI key 时各接口优雅降级(502 JSON),不再崩溃;全局错误兜底 - [x] 前端 `digital-me-web`(Vue3+Vite+TS+Tailwind+Pinia):登录/注册、分身列表、Studio(形象/声音/知识库/对话/口播视频/发布)、公开嵌入页 `/me/:slug` - [x] 契约冒烟测试通过(register→create→knowledge→publish→embed),UTF-8 中文正确入库 - [x] 填 `DASHSCOPE_API_KEY` + cloudflared 隧道,真 AI 端到端跑通(RAG 对话实测 qwen-max + 真 embedding;捏脸/声音/EMO 路径已正确用公网 PUBLIC_URL) - [x] 建分身向导(`CreateWizard.vue` 三步引导)+ Studio 配置进度条 - [x] 「和我分身聊天」嵌入挂件:iframe 之外新增 **JS SDK 悬浮气泡**(`public/widget.js` + `GET /widget.js`,发布页一键生成代码) ### 阶段 2 — 知识与记忆深化 - [x] PDF / Word(.docx) / 图片 → RAG(`services/extract.js`:pdf-parse / mammoth / Qwen-VL 读图 OCR) - [x] 记忆分层:人生时间线 / 重要事件态度 / 口头禅 的结构化录入(`services/memory.js`,口头禅注入人设、全部入 RAG) - [x] 多轮会话管理(按主题分线,`services/session.js` + Studio 会话侧栏) ### 阶段 3 — 场景扩展 - [ ] 家人情感记忆 / 数字遗产(情感壁垒,IMA 不碰) - [ ] 小微商务接待(中介/培训老师用分身接待初访客户) - [x] 实时视频对话(搬 `live.js`,摄像头帧 + 语音)— WS `/api/live`,前端 `Live.vue`,Studio「视频通话」入口 ### 阶段 4 — 隐私护城河 - [ ] 本地/私有部署版(人脸声音模型不出本地设备) - [ ] 「真正拥有你的数字自我」——纪念包 / 名人高端定制 ### PRD 对齐(按《数字我》PRD 补全) - ~~**FR-3 学伴·错题反考**~~ **(已移除,青少年功能,2026-07 随收敛为成人版删除)** - [x] **FR-1.4 性格标签** + **FR-4.1 专家模式** + **FR-4.3 强制免责声明** (专家分身对外回答自动前置「我是 AI 数字分身,仅供参考,不构成专业建议」)。 Studio「人设」标签。 - [x] **4.2 权限回收**:`DELETE /api/auth/account` 注销并物理删除该用户全部数据 (twins/knowledge/messages/memories/sessions/errors/shares/social/rooms)。 - [x] **FR-3.3/3.4 学友互考 + 战报 + 排行榜(裂变引擎)**:同学给公开分身出题 → 分身(AI)应战作答 → LLM 判分 → 记录战报;双榜(分身按守擂胜率、出题官按 「难倒数」)。`services/challenge.js` + 公开 `/api/challenge/:slug[/battles]` + `/api/leaderboard[/challengers]`;前端 `Challenge.vue`(出题应战) + `Leaderboard.vue`(双榜) + 聊天页「出题考考 TA」入口 + 头部「排行榜」。 - [x] **FR-4.2 付费咨询墙(Token 闸门 + 钱包)**:用户 Token 钱包(余额/流水/充值)、 专家分身定价(单次费+可问条数)、付费解锁深度咨询会话(逐条扣次)、平台分成 (专家得 70%)。`services/wallet.js`(原子扣款 + 充值 seam) + `services/consult.js` + `/api/wallet[/topup]` + `/api/consult/expert|start|session|mine`;前端 `Wallet.vue`(充值) + `Consult.vue`(付费解锁聊天) + Studio 人设定价 + Embed 入口。 **支付 SDK 留接口**:`PAYMENT_PROVIDER=stub` 即时到账;接微信/Stripe 时实现 topup() 下单 + 回调到账(验签)。 - [x] **FR-5 策展 → 降维为通用「作品集」**(产品决策):不单列「艺术家计划」模块—— 艺术家=专家人设的一种。抽出唯一不可替代的能力「答问时展示并讲解作品」, 泛化为**任何分身可用**的作品集:上传图(+说明/自动识图)→入 RAG;聊到相关 内容时按相似度阈值内联展示对应作品图。`services/gallery.js`(works) + `/api/twins/:id/works` + `ask()` 附 `works` + ChatPanel 内联渲染 + Studio「作品集」标签。「艺术家计划」仅作为 GTM 包装(名人入驻/博物馆 kiosk = To B 定制),不是代码模块。 - [x] **真实支付通道架构**:订单生命周期(payments) + 幂等入账(原子 pending→paid, 防 webhook 重复) + 可插拔 provider。`services/payments.js`:`mock` 网关完整 模拟下单→支付→回调→入账(已本地验证含幂等);`stripe` Checkout(REST,无 SDK) + Webhook HMAC 验签(`/api/wallet/webhook/stripe`,raw body),填 STRIPE_* 即用; `wechat` 预留 seam。前端 Wallet 充值跳转 payUrl + 返回轮询。**只差商户密钥**。 - [x] **双语对话 + 标准发音 + 英语陪练**:对话可切中/英(per-chat 语言选择器), 回复语言与语音随之切换;英文发音链 Azure Neural(标准, key-gated) → CosyVoice 克隆音色 → 浏览器 TTS 兜底;`英语陪练`模式让分身自然对话并纠错引导(💡 Better:…), 为「指导学生英语对话」打底。`services/azureTts.js` + speak.js 双语链 + twins/embed ask 支持 lang/tutor + ChatPanel 语言/语音/陪练开关。 - [x] **UI 中英切换(i18n)全站完成**:vue-i18n + 顶部语言开关(中/EN,持久化、设 ``);`i18n.ts` 由 {zh,en} 目录生成(18 命名空间 / 390 键),**全部 视图**已接 `t()`(App/Login/Dashboard/Studio/Plaza/Leaderboard/Rooms/Room/ Embed/Social/Consult/Challenge/Admin/Wallet/ChatPanel/CreateWizard),含插值。 保留为内容/品牌:性格标签值、`数字我·Digital Me` 品牌、语言名。 - [x] **三种登录**:邮箱密码(内置)+ 手机短信验证码 + 微信扫码。`services/altauth.js` + `/api/auth/sms/{send,verify}`、`/api/auth/wechat/{qr,poll,callback,mock-scan}`; users 支持 email/phone/wechatOpenId(partial-unique),/me 改按 id 查;前端 Login 三标签页。短信(aliyun)/微信(开放平台)真实通道 key-gated,未配置走 stub (短信 devCode 回显、微信 mock 扫码),均已本地端到端验证。 - ~~**成人/青少年分系统**、**家长监护**、**EDITION 参数化拆分**~~ **(已移除,2026-07 收敛为纯 成人版)**:删 `audience`/`EDITION`/`requireAdult`、`services/guardian.js`+`quiz.js`、 前端 `edition.ts`/版本选择器/Guardian.vue/ReQuiz.vue;互考擂台/排行榜转为成人无条件挂载。 - [x] **两个单点工具 MVP**:口播侠(TalkShot,照片+声+文案→口播视频)、互考擂台(Arena,上擂台+ 战绩+排行榜)。复用现有后端,`useMyTwin` 自动管理分身;`VITE_APP` 可独立打包(DEPLOY §5c)。 (反考机 ReQuiz 已随青少年收敛移除。) - [x] **每 MVP 独立落地页 + Slogan + 埋点漏斗**:`Landing.vue`(/welcome, 按 VITE_APP) + Slogan;`analytics.ts track()` → `/api/track` 入库 → 超管 `/api/admin/funnel`。 北极星指标——口播侠: video_generated;互考擂台: challenge_submitted。 - [x] **产品工厂(商店+购买即开通+权益门控)**:`src/products.js` SKU 目录(上架=加一条); `/store` 商店 + `/buy/:sku` 独立购买链接;`checkout→fulfill(开通权益+magic token)→redeem(自动登入)`; `requireEntitlement` 门控;`VITE_FACTORY=b|c` 工厂部署;utm 渠道归因(DEPLOY §5d)。 - [ ] 小程序(uni-app);3D/视频通话;接微信支付商户号 + 短信/微信登录商户密钥;外接 GA/umami。 ## 数字我 · 社交分身(从「个人工具」升级为「社交载体」) 把「数字我」从私有资产变成**可授权的社交节点**:用户留在平台,不只为自己用, 而是为了「让别人认识数字版的我」。 ### 身份三重分身 - **本体(Me)**:本人,最高权限,负责训练与审核。 - **社交分身(Social Clone)**:部署在好友/陌生人面前的**受限**版本——只有被授权的范围,带场景、边界、红线、有效期、可随时掐断。 - **访客(Friend)**:匿名与分身互动的人。 ### 已落地(阶段一 MVP:熟人社交,验证「像不像」) - **社交卡片(share)**:一个分身可生成多张卡片,各自独立链接 `/s/:token`。 - 场景模式:朋友 / 职场 / 恋人 / 自定义(注入人设,决定 HOW 说)。 - 边界:开放程度(含蓄/适中/健谈)、红线话题(被问到礼貌岔开)。 - 隐私红线:硬性禁止透露住址/电话/证件/行程等,即使知识库有也不说。 - 安全:访客输入内容硬过滤(违法/暴恐/儿童不良)直接拒答、不调模型;诱导违规由人设守护拒绝。 - 记忆隔离:访客对话**不进**本体私人历史/知识库;按 visitorId 单独记录供本体回看(反馈回流,默认开、可关)。 - 时效 + 拉黑:可设有效期;可一键停用(访客侧 410)。 - 防冒充:`twin.verified` 蓝V 字段(平台置位),访客页展示认证标识。 - 后端:`services/social.js` + `routes/social.js`(公开)+ `/api/twins/:id/shares` 管理 + `ask()` 注入社交守护 system 块。 - 前端:Studio「社交分身」标签(建卡/模式/红线/有效期/链接复制/访客反馈)+ 公开名片页 `/s/:token`(bare,可 iframe)。 - 已端到端实测:正常延展 / 红线岔开 / 有害硬过滤 / 访客回流分线 / 停用 410 全部通过。 ### 阶段二 — 广场社交(扩大影响力,进行中) - [x] 发现页 / 数字人广场:本体上架已发布分身(标签/分类),陌生人按标签搜索/浏览。后端 `services/plaza.js` + 公开 `routes/plaza.js`(`GET /api/plaza`、`/api/plaza/tags`、`POST /api/plaza/:slug/rate`)+ owner `PUT /api/twins/:id/plaza`(须先公开);前端 `views/Plaza.vue`(`/plaza`,搜索+标签 chips+卡片)+ Studio 发布页「上架到广场」+ 头部「广场」入口。 - [x] 「灵魂测试」:访客在聊天页给「像不像本人」打分(1–5),均分+评数沉淀为社交背书,广场卡片展示。 - [x] 「AI 代聊」:本体设状态语(如「他在开车,我先帮回」),聊天页顶部 banner 展示。 - [ ] 直播替身(2.5):本体开播,分身帮回弹幕(需接直播流,较重,后做)。 ### 阶段三 — 群聊与协作(已落地) - [x] 平台原生群聊房间:本体拉自己/公开分身进群,生成分享链接 `/room/:token`, 任何人取昵称即可加入。后端 `services/room.js` + `routes/rooms.js` (authed 管理 `/api/rooms` + 公开参与 `/api/room/:token`)。 - [x] 群里 @召唤某分身:消息 @名字 或选择成员 → 该分身带群聊上下文+社交守护+审核作答。 - [x] 会议助手:`POST /api/rooms/:id/summary` 把群聊整理成「要点/决定/待办」纪要。 - [x] 群消息加密落库(AES-256-GCM)+ 输入输出审核 + AI 限流。 - 前端:`views/Rooms.vue`(建群/选成员/链接/纪要) + `views/Room.vue`(公开群聊, 轮询)。 - [ ] 接入微信群/外部 IM(需对接第三方,后续)。 ### 社交商业化(待接) - 本体付费:分身装扮/皮肤、算力包(免费每日限句)、多模态解锁(视频通话看脸)。 - 访客付费:与专家分身按分钟深度咨询;「解锁隐藏答案」微支付。 - B 端:社交名片(求职者把数字我放简历,HR 随时面试分身)。 ### 安全红线(生死线)— 已做生产级加固 - **内容审核**:`services/moderation.js` 输入+输出**双向**审核(社交 / embed / 群聊)。 三档(高优先级优先、逐级兜底):`MODERATION_URL` 外部专业服务 → `MODERATION_MODE=llm` DashScope/Qwen 分类(已实测能拦截正则漏网的诈骗话术)→ 本地正则地板。 - **超管认证后台**:前端 `/admin`(仅 `isSuperAdmin` 可见/可用)授/撤蓝V。 - **访客记录加密**:`services/crypto.js` AES-256-GCM 落库加密(`DATA_ENC_KEY`), 本体读取自动解密;旧明文与无 key 场景均兼容。 - **蓝V 认证流程**:`routes/admin.js` 仅 `SUPER_ADMIN_EMAILS` 可授,用户无法自我认证(防冒充)。 - **分层限流**:登录/注册防爆破(20/min)、公开 AI 接口防刷量(30/min)、广场(60/min)、全局(200/min)。 - **基础硬化**:helmet 安全头、密码常量时间比较、生产默认 `JWT_SECRET` fail-fast、 输入长度上限(`MAX_QUESTION_LEN`)、`trust proxy` 取真实 IP。 - 仍建议:接专业审核服务(替换本地兜底)、密钥走 KMS、访客数据主权条款落地到产品文案。 ## 商业模式(参考,不锁死) - C 端订阅:基础(静态形象+文本)免费/低价;高级(动态视频+声音克隆+长记忆)月费。 - 定制服务:上门拍照录音建高精度分身(纪念包);名人/艺术家高端定制。 - B 端垂类:画廊/教育/诊所的「专家数字分身」,项目制收费。 ## 仓库结构 ``` digital-me/ PLAN.md ← 本文件 digital-me-backend/ ← Node + Express + MongoDB + DashScope digital-me-web/ ← Vue3 + Vite + TS + Tailwind + Pinia 前端 .github/workflows/ ← CI/CD(push master 自动部署到 ECS) ```