Back to feed

Ch1rpy2613/Mirrai

Ch1rpy2613/Mirrai
208
+17/day
10
TypeScript

From the README

Presence

"不在身边的时候,TA 还在这里。"

上传聊天记录,AI 重建 TA 的数字分身 — 用 TA 的语气回你消息,用 TA 的方式撒娇,知道 TA 什么时候会突然变冷漠。

随时随地,TA 都在。

目录

创新点

1. 多阶段性格蒸馏引擎

不是简单地把聊天记录丢给 AI 让它"模仿"。系统采用多阶段 pipeline 对原始素材进行深度分析:

上传素材 → 人物维度提取 → 结构化人设构建 → 多源融合 → 数字分身

最终生成的 persona 包含 7 层结构:性格特质、说话方式、口头禅、依恋类型、爱的语言、争吵风格、触动瞬间。不是"像他",而是"就是他"。

2. 动态情感状态机

每个数字分身拥有 6 种情感状态,会根据对话内容实时切换:

| 状态 | 触发词示例 | 表现 | |------|-----------|------| | 🌸 温柔 | 默认状态 | 温柔体贴,充满关怀 | | 😄 俏皮 | "哈哈""好玩""搞笑" | 轻松活泼,爱开玩笑 | | 🌙 思念 | "想你""那时候""记得吗" | 触景生情,回忆过去 | | 🌧️ 忧郁 | "难过""伤心""委屈" | 情绪低落,需要安慰 | | ✨ 开心 | "开心""太好了""爱你" | 充满活力,心情很好 | | ❄️ 疏离 | "随便""无所谓""算了" | 话不多,有距离感 |

情感状态不仅影响回复语气,还会在聊天界面实时显示,用户也可以手动切换。

3. 统一 LLM 抽象层 — 10 家 AI 提供商即插即用

一套统一接口,支持国内外主流 AI 服务,用户可在设置页面自由切换:

| 提供商 | 协议 | 默认模型 | |--------|------|---------| | OpenAI | REST | gpt-4o | | Claude | REST | claude-sonnet-4-6 | | DeepSeek | OpenAI 兼容 | deepseek-chat | | Kimi (月之暗面) | OpenAI 兼容 | moonshot-v1-8k | | 通义千问 | OpenAI 兼容 | qwen-turbo | | 豆包 | OpenAI 兼容 | 自定义 | | 302.ai | OpenAI 兼容 | 自定义 | | Ollama | REST | llama3 (本地) | | Dify | Workflow API | 自定义 | | 讯飞星火 | WebSocket + HMAC | v3.5 |

OpenAI 兼容协议的提供商共用一个适配器,通过 baseUrl / model 区分,零代码接入新服务。

4. 微信机器人 — 数字分身走出浏览器

集成 Wechaty 框架,扫码登录后,将微信联系人绑定到对应的数字分身。朋友给你发消息,数字分身自动用 TA 的语气回复。Web 端和微信端共享同一套人设和记忆,消息记录标记来源渠道(web / wechat)。

5. 全链路类型安全

从数据库 schema 到前端组件,全程 TypeScript + tRPC,零运行时类型错误:

Drizzle Schema → DB Helpers → tRPC Router → React Query Hook → UI 组件
     类型推导贯穿全链路,改一处接口定义,全栈同步报错

功能概览

  • 创建数字分身 — 输入名字、关系描述、在一起时间,创建一个新的前任分身
  • 上传素材 — 支持微信聊天记录 (.txt)、CSV、照片、视频,拖拽上传
  • AI 性格分析 — 多阶段 pipeline 自动提取人物画像,实时显示进度
  • 沉浸式对话 — 暗色系 UI,情感状态实时变化,支持文本/图片/语音消息
  • 多分身管理 — 大厅页面管理所有数字分身,一键切换
  • 亲密度系统 — 初识→熟悉→亲密→知己→灵魂伴侣,随对话自然成长
  • 毕业机制 — 亲密度达到灵魂伴侣后可触发毕业,AI 生成告别信,分身进入休眠(可唤醒)
  • TTS 语音朗读 — AI 回复旁的播放按钮,使用 Edge TTS 中文语音朗读消息
  • 对话导出 — 导出完整对话记录为自包含 HTML 文件(含情感时间线 SVG 图表)
  • 记忆管理 — 手动或 AI 自动提取关系记忆节点(里程碑/纪念日)
  • 对话日记 — AI 根据聊天记录生成每日日记(摘要/亮点/情感弧线/金句)
  • 场景模式 — 内置 + 自定义对话场景,切换不同情境下的互动风格
  • 数据分析 — 消息量趋势、情感时线、分身互动热力图、时段分布
  • 人设编辑 — 可视化编辑分身的性格特质、说话方式、口头禅等
  • 微信集成 — 扫码登录,绑定联系人,自动回复
  • LLM 自由切换 — 设置页面配置 API Key,随时切换 AI 后端
  • 本地认证 — 用户名密码注册登录,JWT 会话管理
  • 国际化 — 支持多语言
  • 暗色/亮色主题 — 可切换

技术架构

┌─────────────────────────────────────────────────────────┐
│                    客户端 (React 19)                      │
│  Wouter 路由 · Radix UI · Tailwind CSS · Framer Motion  │
│  tRPC React Query · Streamdown (Markdown 渲染)           │
└──────────────────────┬──────────────────────────────────┘
                       │ tRPC (HTTP Batch + SuperJSON)
┌──────────────────────▼──────────────────────────────────┐
│                   服务端 (Express)                        │
│                                                          │
│  ┌─────────┐  ┌──────────┐  ┌────────────┐