最近有客户提出这个需求,那我就借着这次机会把记忆功能也实现了。目前实现了MemOS的部分功能,但已经完全满足客户需求了。
看看记忆效果:
2. 👁️ 模块一:视觉感知系统 (Face ID & Registration)前端负责采集流媒体,后端负责高精度推理,实现毫秒级身份确认。2.1 技术架构●前端交互:▪利用 HTML5
navigator.mediaDevices.getUserMedia调用本地摄像头。▪使用 Canvas 截取视频帧,通过 WebSocket 实时传输至服务端。●后端处理 (Python):▪核心库:InsightFace(工业级人脸分析) 或face_recognition。▪通信:FastAPI / WebSocket 实现低延迟双向通讯。▪算法流程:人脸检测 (Detection) $\rightarrow$ 特征提取 (Embedding 512维向量) $\rightarrow$ 向量库比对 (Matching)。2.2 功能逻辑1.实时检测:视频流中自动框选人脸。2.无感登录:若特征匹配成功,直接返回User ID和User Name,无需输入密码。3.陌生人注册:若识别为陌生人,触发注册流程,采集当前人脸特征并绑定新 ID。4.活体检测(进阶):防止照片/视频攻击,确保交互对象为真人。
3. 🧠 模块二:MemOS 持久化记忆系统这是大模型的“海马体”,负责将瞬时对话转化为长期记忆。3.1 核心功能组件●对话历史获取 (Node.js API) ✅:▪支持按
用户ID和数字人ID双重过滤。▪支持分页(Pagination)和数量限制,避免拉取过多无效历史。▪提供对话摘要生成接口。●智能记忆提取 ✅:▪LLM 驱动:调用大模型分析对话,而非简单的关键词匹配。▪第一人称视角:重写为 AI 视角(如“用户提到他喜欢…”、“我答应了…”)。▪信息过滤:自动剔除“你好”、“在吗”等无营养的寒暄及技术性指令。▪JSON 结构化:返回标准数据格式,便于程序处理。●记忆管理 ✅:▪双层缓存:数据库 (持久层) + 内存 Cache (高速层)。▪生命周期:支持记忆的格式化、手动刷新、查看及清除。3.2 记忆数据示例原始对话:
用户: 我喜欢喝咖啡。AI: 好的,我记住了。用户: 我们下周三见面。AI: 好的,约定下周三。
后台提取的记忆 (JSON):
{
"user_id":"1001",
"fragments": [
"用户明确表示喜欢喝咖啡",
"双方约定在下周三见面讨论项目"
],
"last_updated":"2023-12-06T12:00:00Z"
}注入 LLM 的 Prompt:
【历史记忆】
以下是我们之前对话中的重要信息,请在回复时作为背景知识:
1. 用户明确表示喜欢喝咖啡
2. 双方约定在下周三见面讨论项目4. ⚙️ 关键机制:双阶段与10轮刷新策略为了在成本(Token消耗)、响应速度和记忆时效性之间找到完美平衡,我们设计了独特的双阶段工作流。阶段 1:记忆提取(异步/定期)⏰此步骤即“将短期记忆转化为长期记忆”的过程。●触发机制:不是每句话都提取,而是每 10-20 轮对话触发一次,或用户离线后触发。●工作原理:后台调用 LLM 分析最近的对话记录,提炼新信息,更新到数据库。●优势:避免每次对话都消耗大量 Token 进行分析,不阻塞用户聊天。阶段 2:记忆使用(实时)✅此步骤是“回忆”的过程。●触发机制:每次用户发送消息瞬间。●工作原理:仅从 Redis/内存缓存中读取已提取的 JSON 片段,拼接到 Prompt 中。●优势:耗时几乎为 0ms,用户体验极快。💡 独创优化思路:10轮计数器为了实现自动化,系统维护一个简单的计数器:1.第 1-9 轮:系统只计数。对话仅保存,不触发提取。LLM 使用缓存中的旧记忆。2.第 10 轮:✅触发自动刷新!后台异步提取最新记忆,更新缓存。3.第 11-19 轮:使用更新后的记忆,继续计数。4.第 20 轮:✅再次刷新!循环往复。
5. 🚀 完整工作流 (Integration Workflow)将视觉与记忆结合后的用户旅程:

场景演示1.视觉识别:系统检测到老张(UserID: 888)。2.记忆唤醒:后台迅速检索 UserID: 888 的记忆,发现即使三个月没见,记忆库中仍有记录:"用户老张喜欢聊钓鱼"、"上次提到孙子满月"。3.AI 主动招呼:▪Prompt 注入后$\rightarrow$▪AI: “老张,好久不见!上次你说要去钓鱼,收获怎么样?孙子满月酒办得还顺利吗?”
6. 技术栈与数据存储后端 API 接口设计●
POST /api/auth/login_face: 上传人脸帧,返回 Token 和 UserID。●GET /api/history/fetch: 获取对话历史(支持分页、ID过滤)。●POST /api/memory/extract: 强制触发一次记忆提取(LLM分析)。●GET /api/memory/status: 查看当前用户的记忆缓存状态。数据库设计●user_faces表:存储 512维 Face Embedding (BLOB 类型) + UserID。●user_memories表:存储记忆片段 (JSON)、最后刷新时间、Token消耗统计。●chat_logs表:存储原始对话,用于后续的记忆提取分析。
7. 总结本项目通过“人脸识别入场”解决身份确认问题,通过“MemOS 记忆系统”解决大模型失忆问题。●对用户:体验是无缝的、被重视的、个性化的。●对客户/开发者:▪实现了自动化(10轮自动刷新,无需人工干预)。▪实现了低成本(提取与使用分离,节省 Token)。▪实现了易集成(标准的 REST API 和 JSON 格式)。这不仅是一个聊天机器人,而是一个能认出你、记住你、懂你的数字生命体。
写在最后:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
