Files
digital-me-history/PLAN.md
T
admin 0593ff7e62
nginx serve /uploads direct (audio speed) / patch-nginx (push) Failing after 1m34s
数字我 Digital Me:全量入库(大文件走 Git LFS)
2026-10-10 16:24:43 +08:00

16 KiB
Executable File
Raw Blame History

数字我 / 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 分身(进行中)

  • 后端骨架:auth + twins + knowledge(RAG) + avatar + voice + ask/speak + talk-video + 公开 embed
  • 后端韧性:缺 AI key 时各接口优雅降级(502 JSON),不再崩溃;全局错误兜底
  • 前端 digital-me-web(Vue3+Vite+TS+Tailwind+Pinia):登录/注册、分身列表、Studio(形象/声音/知识库/对话/口播视频/发布)、公开嵌入页 /me/:slug
  • 契约冒烟测试通过(register→create→knowledge→publish→embed),UTF-8 中文正确入库
  • 填 DASHSCOPE_API_KEY + cloudflared 隧道,真 AI 端到端跑通(RAG 对话实测 qwen-max + 真 embedding;捏脸/声音/EMO 路径已正确用公网 PUBLIC_URL)
  • 建分身向导(CreateWizard.vue 三步引导)+ Studio 配置进度条
  • 「和我分身聊天」嵌入挂件:iframe 之外新增 JS SDK 悬浮气泡(public/widget.js + GET /widget.js,发布页一键生成代码)

阶段 2 — 知识与记忆深化

  • PDF / Word(.docx) / 图片 → RAG(services/extract.js:pdf-parse / mammoth / Qwen-VL 读图 OCR)
  • 记忆分层:人生时间线 / 重要事件态度 / 口头禅 的结构化录入(services/memory.js,口头禅注入人设、全部入 RAG)
  • 多轮会话管理(按主题分线,services/session.js + Studio 会话侧栏)

阶段 3 — 场景扩展

  • 家人情感记忆 / 数字遗产(情感壁垒,IMA 不碰)
  • 小微商务接待(中介/培训老师用分身接待初访客户)
  • 实时视频对话(搬 live.js,摄像头帧 + 语音)— WS /api/live,前端 Live.vue,Studio「视频通话」入口

阶段 4 — 隐私护城河

  • 本地/私有部署版(人脸声音模型不出本地设备)
  • 「真正拥有你的数字自我」——纪念包 / 名人高端定制

PRD 对齐(按《数字我》PRD 补全)

  • FR-3 学伴·错题反考 (已移除,青少年功能,2026-07 随收敛为成人版删除)
  • FR-1.4 性格标签 + FR-4.1 专家模式 + FR-4.3 强制免责声明 (专家分身对外回答自动前置「我是 AI 数字分身,仅供参考,不构成专业建议」)。 Studio「人设」标签。
  • 4.2 权限回收:DELETE /api/auth/account 注销并物理删除该用户全部数据 (twins/knowledge/messages/memories/sessions/errors/shares/social/rooms)。
  • FR-3.3/3.4 学友互考 + 战报 + 排行榜(裂变引擎):同学给公开分身出题 → 分身(AI)应战作答 → LLM 判分 → 记录战报;双榜(分身按守擂胜率、出题官按 「难倒数」)。services/challenge.js + 公开 /api/challenge/:slug[/battles] + /api/leaderboard[/challengers];前端 Challenge.vue(出题应战) + Leaderboard.vue(双榜) + 聊天页「出题考考 TA」入口 + 头部「排行榜」。
  • 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() 下单 + 回调到账(验签)。
  • FR-5 策展 → 降维为通用「作品集」(产品决策):不单列「艺术家计划」模块—— 艺术家=专家人设的一种。抽出唯一不可替代的能力「答问时展示并讲解作品」, 泛化为任何分身可用的作品集:上传图(+说明/自动识图)→入 RAG;聊到相关 内容时按相似度阈值内联展示对应作品图。services/gallery.js(works) + /api/twins/:id/works + ask() 附 works + ChatPanel 内联渲染 + Studio「作品集」标签。「艺术家计划」仅作为 GTM 包装(名人入驻/博物馆 kiosk = To B 定制),不是代码模块。
  • 真实支付通道架构:订单生命周期(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 + 返回轮询。只差商户密钥。
  • 双语对话 + 标准发音 + 英语陪练:对话可切中/英(per-chat 语言选择器), 回复语言与语音随之切换;英文发音链 Azure Neural(标准, key-gated) → CosyVoice 克隆音色 → 浏览器 TTS 兜底;英语陪练模式让分身自然对话并纠错引导(💡 Better:…), 为「指导学生英语对话」打底。services/azureTts.js + speak.js 双语链 + twins/embed ask 支持 lang/tutor + ChatPanel 语言/语音/陪练开关。
  • UI 中英切换(i18n)全站完成:vue-i18n + 顶部语言开关(中/EN,持久化、设 <html lang>);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 品牌、语言名。
  • 三种登录:邮箱密码(内置)+ 手机短信验证码 + 微信扫码。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;互考擂台/排行榜转为成人无条件挂载。
  • 两个单点工具 MVP:口播侠(TalkShot,照片+声+文案→口播视频)、互考擂台(Arena,上擂台+ 战绩+排行榜)。复用现有后端,useMyTwin 自动管理分身;VITE_APP 可独立打包(DEPLOY §5c)。 (反考机 ReQuiz 已随青少年收敛移除。)
  • 每 MVP 独立落地页 + Slogan + 埋点漏斗:Landing.vue(/welcome, 按 VITE_APP) + Slogan;analytics.ts track() → /api/track 入库 → 超管 /api/admin/funnel。 北极星指标——口播侠: video_generated;互考擂台: challenge_submitted。
  • 产品工厂(商店+购买即开通+权益门控):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 全部通过。

阶段二 — 广场社交(扩大影响力,进行中)

  • 发现页 / 数字人广场:本体上架已发布分身(标签/分类),陌生人按标签搜索/浏览。后端 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 发布页「上架到广场」+ 头部「广场」入口。
  • 「灵魂测试」:访客在聊天页给「像不像本人」打分(1–5),均分+评数沉淀为社交背书,广场卡片展示。
  • 「AI 代聊」:本体设状态语(如「他在开车,我先帮回」),聊天页顶部 banner 展示。
  • 直播替身(2.5):本体开播,分身帮回弹幕(需接直播流,较重,后做)。

阶段三 — 群聊与协作(已落地)

  • 平台原生群聊房间:本体拉自己/公开分身进群,生成分享链接 /room/:token, 任何人取昵称即可加入。后端 services/room.js + routes/rooms.js (authed 管理 /api/rooms + 公开参与 /api/room/:token)。
  • 群里 @召唤某分身:消息 @名字 或选择成员 → 该分身带群聊上下文+社交守护+审核作答。
  • 会议助手:POST /api/rooms/:id/summary 把群聊整理成「要点/决定/待办」纪要。
  • 群消息加密落库(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)