项目介绍
Lazy Medicine Cabinet 是一个替你读懂药盒的小型网页应用:给药盒拍照,通过 Ollama 在本地运行的 Gemma 3(4B,视觉)就会列出每个产品名(一字不差地照印字转录)、它的有效期(同样照印字转录)和一种状态——已过期、30 天内过期、90 天内过期或正常——并用大白话说明还剩多久。一个「Cabinet(药柜)」标签页保存着清单,每行都带一张来源照片的缩略图;一个「Pharmacy bag(药房回收袋)」标签页把过期药品汇成一份可打印的回收清单;每一行都可以手动更正。
隐私设计正是它的全部意义所在:应用完全运行在作者的笔记本电脑上,照片在浏览器中先缩小到 1024 像素,然后才交给本地模型,清单和照片只存储在那台笔记本上,删掉一行时对应的照片也会一并删除。模型只被允许转录——提示词禁止它描述用途或添加剂量、建议——所有与安全相关的逻辑(日期解析、状态判定、提醒、免责声明)都写在朴素、经过测试的代码里:26 个测试覆盖了日期解析、状态边界、模型输出解析,以及一条端到端断言:没有任何请求离开 localhost。
Vibe coding 的证据来自作者在 DEV 上的原话(2026 年 10 月 24 日):「I built this with Claude Code as a coding agent. It checked my laptop, proposed the model, wrote the code and tests, and ran the before/after prompt comparison. I made the product decisions and reviewed and approved every medicine-related text myself.(这是我用 Claude Code 作为编码智能体做的。它检查了我的笔记本、推荐了模型、写了代码和测试,还跑了提示词修改前后的对比。产品决策是我做的,每一份与药品相关的文本都由我本人审阅批准。)」GitHub star 数:截至 2026 年 10 月 29 日核查时为 0(github.com/iancuileana83-lab/lazy-medicine-cabinet;MIT;创建和最近推送均为 2026 年 10 月 24 日)。
如实说明的局限:Lazy Medicine Cabinet 不是托管应用,也没有在线演示——它是一个纯 Node 的单页应用,只在 localhost 上提供服务,所以仓库页面就是演示链接,这里没有能在浏览器里直接试用的东西。它可能读错标签(作者自己的测试:提示词调优后产品名 7 个全对,两次运行中日期都是 7 个对 6 个,而且每次出错的药盒都不同),它从不给出医疗建议、剂量或药物相互作用信息,而且在弱硬件上刻意不求快——作者那台没有显卡的双核笔记本上,每张照片大约要一分钟。作者说明,截图展示的是生成的虚构药盒图片(编造的品牌名,没有真实标志)。