【社会服务+社会公益】拾忆家谱,把散落在家人记忆里的名字重新连起来

关于我

我是一名编程小白,之前没学过代码。我接触 Vibe Coding 只有不到一年时间,这次独立完成了产品设计、资料整理、交互设计、开发和测试。

我想做“拾忆家谱”,起点很朴素。许多家庭留下了回忆录、家书、老照片和长辈口述,可这些材料分散在文档、相册和聊天记录里。年轻一代打开一篇几十年前的回忆,常常认得每个字,却不知道文中的“五叔”“七姨”“母亲”分别是谁,更不知道这些称呼换到自己的视角以后应当怎样理解。

一位长辈离开以后,家人失去的往往不只是一段生平。那些没有及时问清的称谓、年份和亲属关系,也会跟着变得模糊。我希望用一个本地运行的小工具,让普通人能把这些材料慢慢整理下来。

产品简介

“拾忆家谱”是一款本地运行的 AI 家庭记忆整理工具。用户可以上传回忆录、家书、Word、PDF 和老照片,也可以直接粘贴一段文字。系统在浏览器本机完成解析,找出人物、称谓、年份、地点和事件,再以当前用户为观察位置,把“我”“母亲”“五叔”这类相对称呼换算成用户真正能理解的家族关系。

它面向手里保存着家庭资料,却缺少时间和方法整理的人。典型场景可能是整理外婆留下的回忆录,也可能是把几位长辈对同一件往事的不同说法放在一起核对。

整个使用过程从一段真实资料开始。用户先确认这份资料是谁写的、谁在讲述,再核对系统找出的人物和关系。确认后的内容才会进入家族树。每上传一篇新材料,家族树只生长相关的局部,不会覆盖家人已经确认过的结论。

家族树建立以后,用户可以打开任意人物的记忆页。这里会集中展示人物故事、照片、人生片段、直接亲属和原文证据。系统可以根据已经确认的材料整理故事草稿,每个段落都带有来源引用。草稿要经过家人确认才会发布。不同资料说法不一致时,页面会把几种讲述并列保留,不替家人挑选唯一答案。

目前产品已经形成完整流程。

用户把资料放进来,系统在本地抽取线索。接下来确认叙述者,核对人物与关系,生成可持续更新的家族树,再进入人物记忆页。最后一轮开发会补上本地备份、家族树和人物纪念页导出,以及离线求证包。家人即使不注册账号,也能打开一个独立 HTML 页面回答问题,再把回答文件交回档案主人审核。

从初赛 Demo 到复赛作品

初赛阶段(点击查看初赛帖子),我先验证了一件事。家庭回忆中的人物和称谓能不能被识别出来,并转换成一棵可读的家族树。

做到这一步以后,问题才真正露出来。真实材料很少按照标准句式写。有人写“丈夫叫李国平”,有人写“我们的女儿小周”,也有人在文章开头注明“本文代母亲周兰写”。如果只识别人名,系统很容易把整理者当成叙述者,把“母亲”理解成所有人的母亲,最后生成一棵看似完整却经不起核对的树。

复赛的迭代从这里展开。

我先给每份资料增加身份确认。系统会根据署名和正文线索预填整理者与叙述者,同时把判断依据摆出来。用户可以确认,也可以一次只修改一个问题。身份没有确认以前,系统不会自动归一第一人称称谓。

随后我把人物和关系审核拆开。人物先核对,关键关系再逐条确认。用户可以选择正确、修改或暂不确定。暂缓内容不会阻止其他已经确认的内容进入家族树。每次更新先生成变更预览,列出新增人物、新增关系、证据、暂缓内容和冲突,再由用户决定是否应用。

家族树也经历了一次重做。配偶和人物先组成家庭单元,再统一计算宽度和代际位置。旁支可以折叠,当前用户的直系和本次新增分支优先展开。测试覆盖配偶显示、待确认人物、支系展开和锚点聚焦等 16 种组合,节点碰撞数保持为零。

真实场景测试又暴露了两个很小却很致命的问题。早期规则无法理解“丈夫叫某某”这种自然表达,中文人物 ID 在清理字符时还可能互相覆盖。我补上了常见亲属句式,并改用完整字符串的确定性哈希 ID。那次测试让我意识到,家谱产品最危险的错误往往不会让页面崩溃,它只会悄悄把人连错。

复赛作品把家族树继续往前推了一步。树上的每个人都有自己的记忆页。用户可以补充一句回忆、一张照片或一个模糊年代。系统会建议时间、地点和相关人物,建议只有经过确认才会写入时间线。故事草稿逐段保存引用,重新生成也不会覆盖家人编辑过或已经发布的版本。

产品演示视频

演示视频比较大,上传了B站,请点击观看

创作过程中最重要的几个决定

第一个决定是让资料留在本机。回忆录、家书和老照片带着真实家庭信息,默认上传服务器并不合适。拾忆家谱使用 IndexedDB 保存档案,文本解析、关系计算和故事整理都在浏览器内完成。

第二个决定是把 AI 放在建议的位置。系统可以找线索、预填身份、整理草稿,却不能替家人确认亲属关系。已经人工确认的结论不会被新资料直接覆盖。新证据与旧结论冲突时,系统保留两边并提醒用户核对。

第三个决定是保留每条结论的来路。人物、关系、事件和故事段落都可以回到原始资料。家人看到一句人物小传时,能够继续查看它来自哪篇回忆、由谁讲述、原文怎样写。

第四个决定是关于个人数据隐私。完整备份用于本人恢复,分享型导出则必须经过隐私预览。默认隐藏在世人物的敏感年份,照片逐张确认,原始资料全文不进入公开输出。求证包只包含被选中的问题和必要原文。家人的回答导回系统以后仍要逐条审核。

TRAE 实践过程

这个作品的开发过程几乎都围绕真实问题逐步展开。我先在 TRAE 中梳理产品流程和数据结构,再让不同任务分别处理关系抽取、增量补丁、家族树布局、人物记忆和浏览器验收。每完成一批功能,都会先跑单元测试,再使用真实浏览器模拟普通用户操作。

TRAE 对我帮助最大的一点,是它能把产品设计、代码实现和实际页面测试接在一起。关系规则出现漏识别时,我可以直接用真实回忆风格文本重现问题,补测试,修改实现,再走一遍页面。布局出现拥挤时,也可以同时检查 DOM 边界、移动端溢出和控制台信息。

【截图 1-作品首页】

【截图 2-AI分析】

【截图 3-人物关系核对】

【截图4- 家族树】

【Session ID 1】

{“region”:“”,“traceId”:“e8f323618d628290b5e36c1a45071954”,“userId”:“zhaoyun.911”,“chatSessionId”:“6a53f198f9429d070e5123be”,“replyToMessageId”:“6a767f4ed2eff5ffc5f39f23”,“messageId”:“6a767f4ed2eff5ffc5f39f25”,“createTime”:“2026/8/8 08:58:54”,“modelName”:“gpt-5.6-sol”,“status”:“completed”,“agentProcessSupport”:“v3”,“appName”:“TraeWork CN”,“appVersion”:“0.1.45”,“slardarSid”:“no_sid”,“ppe”:“no_ppe”}

【Session ID 2】

{“region”:“”,“traceId”:“3854b15e9f87d15efb7d0cdb2fa87d32”,“userId”:“zhaoyun.911”,“chatSessionId”:“6a53f198f9429d070e5123be”,“replyToMessageId”:“6a7884e0e982cf17cc4f1b2e”,“messageId”:“6a7884e0e982cf17cc4f1b30”,“createTime”:“2026/8/9 21:47:12”,“modelName”:“gpt-5.6-sol”,“status”:“completed”,“agentProcessSupport”:“v3”,“appName”:“TraeWork CN”,“appVersion”:“0.1.45”,“slardarSid”:“no_sid”,“ppe”:“no_ppe”}

【Session ID 3】

{“region”:“”,“traceId”:“ca656f6afbf3aea9808f6d9ae333dc12”,“userId”:“zhaoyun.911”,“chatSessionId”:“6a53f198f9429d070e5123be”,“replyToMessageId”:“6a789bafe982cf17cc4f32a9”,“messageId”:“6a789bafe982cf17cc4f32ab”,“createTime”:“2026/8/9 23:24:31”,“modelName”:“gpt-5.6-sol”,“status”:“completed”,“agentProcessSupport”:“v3”,“appName”:“TraeWork CN”,“appVersion”:“0.1.45”,“slardarSid”:“no_sid”,“ppe”:“no_ppe”}

技术实现

项目使用原生 JavaScript ES Modules、HTML、CSS 和 IndexedDB,没有引入前端框架。这样做可以让作品保持轻量,也方便导出为本地运行的完整页面。

核心数据以 FamilyTreeDoc 为中心,人物、关系、事件、来源、证据、照片、故事和记忆卡都使用稳定 ID 互相引用。GraphPatch 负责增量更新,只应用本次资料产生的变化,并保留撤销快照。人物合并时,记忆卡、故事、照片和冲突说法会一起迁移;撤销合并时再完整恢复。

故事整理只使用已经确认的材料。每个故事段落必须至少拥有一个有效引用。来源被删除或状态发生变化时,已发布文字不会消失,页面会提示引用需要复核。

商业价值

拾忆家谱面向拥有家书、回忆录、老照片和长辈口述资料的家庭,提供从资料整理、关系核对到家族记忆保存的一体化服务。未来可通过家庭高级档案、多人协作、纪念册定制等方式收费,也可以与养老机构、社区服务中心、地方志编纂和数字纪念平台合作。产品采用本地保存与人工确认机制,在满足家庭隐私需求的同时,具备向更多家庭复制推广的可能。

我希望它留下什么

家谱经常从名字和生卒年份开始,可家人真正记住的,常常是另一类东西。某个人年轻时去过哪里,为什么没能继续读书,春节会做什么菜,照片里的那件衣服是谁缝的。

这些内容很零散,也很难一次整理完。拾忆家谱允许用户先保存一句话,先留下一个不确定的年份,再慢慢请家人补充。它不会催促用户完成百分之百的档案,也不会让 AI 把缺失部分补成一个圆满故事。

我希望最后得到的家谱有清楚的关系,也保留家人说话时原来的分寸。多年以后再打开它,名字仍然能找到来路,疑问也没有被悄悄抹掉。

1 个赞