logo
0
0
WeChat Login
godog431<aayou_123@163.com>
docs: 移除用户使用手册,更新 README 相关文档引用

数字人生形象模拟

一个数字缅怀平台——从聊天记录、语音、亲友描述中提取人物的基础性格特点,借助大模型对话能力,尽最大程度还原 TA 的说话方式、音色语调、语气词习惯、打字标点风格甚至错别字特征,让每一次对话都像在和 TA 本人聊天。系统同时以故事化形式呈现人物完整人生历程,将生平记忆与 AI 对话深度融合,让记忆有温度地传承与延续。

功能特点

  • 附件驱动建档:上传图片、Markdown、文本文件等素材,AI 自动提取人物形象
  • AI 角色分析:基于上传素材自动生成角色档案(性格特点、说话风格、常用语、情感基调等)
  • AI 情感对话:基于角色档案还原 TA 的说话方式与语言习惯,支持流式/非流式生成
  • 浏览零门槛:访客无需注册登录即可访问纪念页
  • 编辑轻认证:通过邀请码 + 昵称进行轻量身份识别
  • 多媒体支持:支持图文、音频等多媒体附件上传与展示
  • 多人协作:授权亲友通过邀请码共同完善内容
  • 留言互动:访客留言纪念,需审核后展示
  • 聊天记录分析:导入聊天记录自动提取语言风格、常用词汇、打字习惯
  • 隐私保护:公开/私密控制,内容自主管理
  • 全容器化部署:Docker 一键启动,无需商业 BaaS 依赖

技术架构

┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ Nginx (前端) │────▶│ Express (后端) │────▶│ MySQL 8.0 │ │ React 18 SPA │ │ REST API │ │ 数据持久化 │ │ :80 │ │ :3001 │ │ :3306 │ └────────────────┘ └────────────────┘ └────────────────┘ │ │ │ /api/* 代理 │ OpenAI 兼容 API │ /uploads/* 代理 ▼ │ ┌────────────────┐ │ │ AI 模型服务 │ │ │ (混元/DeepSeek/ │ │ │ OpenAI 等) │ └───────────────┘────────────────┘
层级技术说明
前端React 18 + React BootstrapSPA 单页应用,HashRouter 路由
Web 服务器Nginx Alpine静态资源、gzip、API/上传反代、SSE 流式支持
后端 APIExpress.js (Node 18)RESTful API,文件上传,AI 代理
数据库MySQL 8.07 张表,utf8mb4,JSON 列,外键级联删除
AI 引擎OpenAI 兼容 API人物性格建模 + 语言风格还原 + 情感对话生成
文件存储本地文件系统上传文件存储于 Docker Volume
容器编排Docker Compose三服务编排,自动初始化数据库

数字人生形象构建流程

┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 素材上传 │───▶│ AI 角色分析 │───▶│ 档案生成 │───▶│ 对话还原 │ │ │ │ │ │ │ │ │ │ · 文字描述 │ │ · 性格特点 │ │ · 人物概述 │ │ · 风格一致性 │ │ · 聊天记录 │ │ · 说话风格 │ │ · 性格标签 │ │ · 记忆关联 │ │ · Markdown │ │ · 情感基调 │ │ · 常用语 │ │ · 情感适配 │ │ · 图片素材 │ │ · 常用表达 │ │ · 人物背景 │ │ · 安全边界 │ │ · 语音样本 │ │ · 背景信息 │ │ · 情感基调 │ │ · 持续优化 │ └─────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
  1. 素材上传 — 拖拽或点击上传图片、文本、Markdown 等素材文件,填写人物姓名与关系
  2. AI 角色分析 — 点击「AI 分析角色形象」,AI 自动从素材中提取人物性格、说话风格、常用语等
  3. 档案生成 — 生成结构化角色档案(characterProfile),包含性格特点、说话风格、常用语、情感基调等
  4. 对话还原 — 基于角色档案进行 AI 情感对话,还原 TA 的说话方式与语言习惯

数据库结构

表名说明关键字段
users用户表id, nickname, settings
memorials纪念页表id, title, name, relationship, character_profile (JSON), attachments (JSON)
memorial_invites邀请码表memorial_id, invite_code
comments评论表memorial_id, content, is_approved
media_files媒体文件表memorial_id, file_path, file_type
chat_profiles聊天人设表memorial_id, model_config (JSON), voice_features (JSON)
chat_messages聊天消息表memorial_id, sender, content

所有表均使用 utf8mb4 字符集,支持 emoji 表情。纪念页删除时会级联删除关联的邀请码、评论、媒体、聊天记录。

API 接口一览

分组方法路径说明
纪念页GET/api/memorials获取列表(支持 isPublic 过滤)
GET/api/memorials/:id获取详情
POST/api/memorials创建
PUT/api/memorials/:id更新
DELETE/api/memorials/:id删除
POST/api/memorials/batch批量获取
评论GET/api/comments获取已审核评论
GET/api/comments/pending获取待审核评论
POST/api/comments添加评论
PUT/api/comments/:id/approve审核通过
DELETE/api/comments/:id删除评论
邀请码POST/api/invites生成邀请码
GET/api/invites/validate验证邀请码
媒体POST/api/media/upload上传文件
GET/api/media获取文件列表
DELETE/api/media/:id删除文件
对话GET/api/chat/profiles获取聊天人设
POST/api/chat/profiles创建人设
PUT/api/chat/profiles/:id更新人设
GET/api/chat/messages获取消息列表
POST/api/chat/messages发送消息
AIPOST/api/ai/stream流式文本生成 (SSE)
POST/api/ai/generate非流式文本生成
POST/api/ai/analyze聊天记录分析
POST/api/ai/analyze-characterAI 角色形象分析
系统GET/api/health健康检查

目录结构

Echoes_of_Time/ ├── docker-compose.yml # Docker 编排文件 ├── Dockerfile # 前端多阶段构建 (React → Nginx) ├── nginx.conf # Nginx 配置 (代理 + 缓存 + SSE) ├── .env.example # 环境变量示例 ├── package.json # 前端依赖 ├── index.html # HTML 入口 ├── public/ # 静态资源 ├── src/ # React 前端源码 │ ├── App.js # 主应用 + 路由 │ ├── api.js # REST API 客户端 │ ├── config.js # 前端统一配置 │ ├── components/ # 组件 │ │ ├── MemorialForm.js # 纪念页创建/编辑表单(附件上传+AI角色分析) │ │ ├── MemorialView.js # 纪念页查看(角色档案+附件展示) │ │ ├── EmotionalChat.js # AI 情感对话(基于角色档案) │ │ ├── ModelSettings.js # AI 模型设置面板 │ │ ├── TextAnalyzer.js # 聊天记录文本分析 │ │ ├── VoiceFeatures.js # 语音特征管理 │ │ ├── CommentApproval.js # 评论审核 │ │ ├── InviteModal.js # 邀请码弹窗 │ │ ├── Collaborators.js # 协作管理 │ │ ├── MediaGallery.js # 媒体库管理 │ │ ├── TimeLine.js # 时间线展示 │ │ ├── AccessibilitySupport.js # 无障碍支持 │ │ └── ResponsiveDesign.js # 响应式布局 │ └── pages/ │ └── EditMemorial.js # 编辑纪念页 ├── server/ # Express 后端 │ ├── index.js # 入口 (含 DB 就绪等待) │ ├── config.js # 后端配置 │ ├── db.js # MySQL 连接池 │ ├── database/init.sql # 数据库初始化脚本 (7 张表) │ ├── Dockerfile # 后端容器构建 │ └── routes/ # API 路由 │ ├── memorials.js # 纪念页 CRUD │ ├── comments.js # 评论管理 │ ├── invites.js # 邀请码 │ ├── users.js # 用户管理 │ ├── media.js # 媒体文件上传 │ ├── chat.js # 聊天人设与消息 │ └── ai.js # AI 代理(流式/非流式/分析) ├── eot_ver.md # 核心设计理念与架构设计文档 └── INSTALL.md # 安装部署手册

相关文档


项目名称: 数字人生形象模拟
运行环境: Docker / Docker Compose