Project / Apr 6, 2026
Vestige 集物志
一款 iOS 个人物品记录应用,用多模态 AI 从照片中自动识别物品信息并填充字段
- Role
- Solo project: idea, code, UI, iteration
- Stack / Topics
- iOSSwiftUILLM多模态生活工具

项目概述
Vestige 是一个移动优先的个人持有物记录应用。它的核心目标不是简单地保存照片,而是把「拍下物品」转化成可检索、可整理、可长期维护的结构化记录。
为了和市面上偏表格、偏资产管理的竞品拉开差异,我把视觉语言做成了类似游戏背包的感觉:物品被放进带边框和稀有感的 icon / slot 里,整理现实物品时像是在整理 RPG 背包。这个设计让记录行为不再像做家务,而更像收集、归档和整理战利品,完成后会有明显的成就感。
在拍照或导入图片后,应用会调用多模态模型识别画面里的物品,并自动补全标题、品牌、来源、价格线索和购买日期线索。用户仍然可以手动编辑,但最耗时的录入步骤会被 AI 先完成一版。


核心流程
- 用户拍照或从相册导入物品图片。
- 应用压缩图片,并构建包含文字指令和图片文件的多模态消息。
- 通过 OpenAI-compatible provider 调用视觉模型。
- 使用结构化输出 schema 获取
title、brand、source、purchaseCostHint和purchaseDateHint。 - 如果用户表单字段为空,自动填充识别结果。
- 用户确认后保存到个人物品库。
怎么做的
界面是 SwiftUI 写的,视觉上借了一点 RPG 背包的感觉:icon、边框、slot 都围绕“收集物品”来做,让整理现实物品没那么像填表。
识别流程走多模态模型。应用把照片压缩后直接发给视觉模型,不要求用户先写一段描述。模型输出用 Swift AI SDK 的 generateObject 限成表单能直接用的结构,比如 title、brand、source、purchaseCostHint 和 purchaseDateHint。模型接入走 OpenAI-compatible endpoint,默认用 Gemini 系列视觉模型。
技术栈
- SwiftUI
- Swift AI SDK
- OpenAI-compatible provider
- Gemini multimodal model
- iOS photo capture / import flow
记录东西最烦的就是逐个填字段,填一半就懒得填了。Vestige 里的 AI 只负责先填一版,剩下的由用户确认和修改。它不会替用户拍板,识错了也不会直接写进物品库。