软件项目介绍
Unexposed / 未显影 · 项目说明 一、问题:照片越拍越多,“为什么留下它”正在消失 手机让拍照的成本趋近于零,也让“留下”这个动作失去了分量。我们随手拍下几十张相似的图,把它们交给相册算法按时间和地点归档——相册越来越厚,但每张照片原本携带的那个瞬间却越来越轻:当时为什么按下快门、画面里有谁、那天发生了什么,很快连拍摄者自己也无法回答。 记忆并不是匀速消失的。身体对某些画面念念不忘,理智却提醒我们向前看;几年后重新翻出同一张照片,我们对它的理解往往已经完全不同,但相册从不为这种变化留出位置,新解释总是无痕地覆盖旧感受。重要的记忆不是被删除了,而是失去了被重新理解的入口。真正稀缺的不是存储空间,而是一次认真的选择,以及一个能陪人重新审视旧照片的对话者。 二、方案:把照片封存成胶卷,让解释在未来重新显影 Unexposed / 未显影用“胶卷”隐喻把这件事变成一条克制的闭环:每一卷只能装恰好三张照片。这不是容量限制,而是产品机制——用户必须决定这一次真正想留住什么。选定后,为每张照片写下当下的解释(它是什么、为什么值得),并设定希望在未来多久重新看到它;确认封存后,照片、说明与创建时间一起凝固为不可覆盖的历史版本。 时间过去,用户可以回到这卷胶卷做两件事。其一是“重新显影”:写下“它现在对我意味着什么”,系统把它作为新的时间层与旧版本并列呈现,保存“那时”与“现在”的差异,而不是让今天抹掉过去。其二是“闪回对话”:AI 先理解照片画面,再结合照片说明和用户此前的叙述,以多声部内心独白与用户展开有来有回的对话。它不替用户写回忆,只负责提问与追问;对话结束后,其中最有价值的部分会被提炼成新的说明并写回照片,供下一次闪回继续深挖。 产品是本地优先的 Web 应用:照片、说明、版本、反思与对话全部保存在用户自己的浏览器中,服务器不存储任何用户数据。AI 通道可切换:公网部署默认使用智谱 GLM-5.3-Flash,本地运行可配置 Ollama 完全离线。核心的封存与重新显影流程不依赖 AI,模型不可用时产品依然完整可用。 三、现场完成内容 本届比赛期间完成的是一个可构建、可运行、可体验的完整产品,而非概念演示: 1. 完整产品闭环:创建胶卷 → 选择恰好三张照片(自动压缩、排序、替换)→ 逐张书写说明与回顾周期 → 封存仪式 → 胶卷桌面(3D 物理引擎驱动,低性能设备自动降级为 2D)→ 重新显影 → 本地对话档案。 2. 闪回对话系统:读图描述、开场独白、多声部争执、流式正文、摘要写回均已实现并接入云端 GLM-5.3-Flash,同时保留本地 Ollama 通道。 3. 体验优化:照片入库后后台预生成开场内容,首次进入闪回可快速打开;封存对话后自动预生成下一场开场,形成跨场次接力;思考过程以“快速念头流 + 正式争执”双层流式呈现,全程无空屏等待。 4. 工程与安全:支持数据一键导出、导入、清空备份;提供云端 AI 会话级授权提示;上传图片自动压缩;模型接口具有限流、每日额度、超时与错误脱敏;配置基础安全响应头;使用 GitHub Actions 持续集成(类型检查、单元测试、生产构建)与备份往返等自动化测试;采用 MIT 开源许可证。 5. 演示成片:deliverables/UNEXPOSED-demo.mp4(3 分 03 秒,1080p),完整呈现从建卷到封存对话归档的闭环。 四、核心设定:三重脑与思维阁 闪回对话的人格不是单一助手,而是一颗被拆开来看的头脑。其灵感来自 MacLean 的“三重脑”假说;在此之上,Unexposed 原创了与暗房隐喻同构的第六个声音——思维阁。 哺乳脑(LIMBIC BRAIN)是对话的主声音,掌管情绪、依恋、爱与失去。它不客观描述照片里“有什么”,而是表达照片让它“感觉到”什么,以温热、迟疑却一针见血的语气戳破自我安慰。 爬虫脑(REPTILIAN BRAIN)代表本能、恐惧与生存,以低沉、干冷的短句道破最深的安全需求。新皮层(NEOCORTEX)则保持冷静与客观,像旁观者一样分析、拆解,在浓烈情绪中指出事实结构。 思维阁(Thought Cabinet)是本产品的原创设定,由一组以暗房工艺命名的“思维”组成:显影者、定影者、重曝者、放大者、裁剪者与烧片者。每次开启闪回,思维阁会随机点亮其中一个思维。它不是另一个角色,而是一副看照片的镜片,会以自己的立场参与内心争执,为整场对话染上独特倾向。 这些声音的出场被刻意安排得克制:前三轮以哺乳脑独白建立亲密,此后其他脑层每两三轮短暂穿插,点亮的思维阁更为稀有。对话始终以哺乳脑的追问为主线,偶尔被其他念头打断,像真实的内心活动一样忽近忽远。所有声音的思想与台词均为本产品原创。
团队
Unexposed