10 KiB
康康 · 小红书长文正文与 9 宫格方案
参考风格:「Day5|30小时,用 AI 开发的 APP 完工了」这类独立开发记录口吻。 使用前替换:比赛官方话题、@官方账号、真机 tok/s 数字、开发耗时。
标题备选
- Day42|我做了个不上传的健康 AI App
- 6 周做完:体检报告 AI 解读,但不联网
- 把大模型塞进 iPhone,做了个健康档案 App
- 体检报告别再乱拍给云端 AI 了
- 用 MNN 在本地跑健康 AI,我把 demo 做完了
推荐主标题:
Day42|我做了个不上传的健康 AI App
副标题可放封面小字:
Qwen + MNN + SME2,体检报告在手机本地解读
正文主稿
Day42,这个 6 周 demo 终于能完整跑起来了。
我做了一个叫「康康」的 iOS App。它的目标很简单:把体检报告、化验指标、症状、日记和用药记录整理成一个本地健康档案,再让 AI 用大白话帮你看懂。
但我给自己加了一条硬限制:
健康数据不上传。
这件事一开始听起来有点拧巴。因为现在最常见的 AI 解读方式,就是把报告拍照发给云端模型。可体检报告里有姓名、年龄、医院、检查指标、既往问题,基本是一个人最私密的数据之一。
所以我想做一个反过来的版本:
不是把报告交给云端 AI,而是把 AI 放进手机里。
这版「康康」现在能完成一个比较完整的闭环:
- 拍一张体检报告或化验单
- 本地识别图片里的指标
- 把数值、单位、参考范围、异常状态整理成结构化档案
- 后续可以看趋势,比如体重、血糖、血脂、血压
- 也可以问它:最近哪些指标异常?就诊前帮我整理一份摘要
整个过程不需要账号,不接云服务,没有广告 SDK,也没有第三方分析 SDK。
数据存在 iPhone 本地。报告原图进本地 Vault,SwiftData 存结构化记录,Face ID 可以给 App 加启动锁。
技术上最核心的一点是端侧推理。
这次我主路径用的是:
Qwen3.5-2B + MNN + iPhone CPU/SME2
MNN 是阿里开源的推理框架。我的目标不是“能接上一个 API 就算 AI App”,而是让模型真的在手机本地吐 token。
App 里做了一个推理引擎页,可以看到当前后端:
- 自动模式:真机优先走 MNN
- MNN:CPU + SME2/NEON
- MLX:兜底和对照
在支持 SME2 的设备上,MNN 会走端侧 CPU 加速。性能自检页会跑固定 prompt,直接显示 prefill 和 decode 速度。这里不是 PPT 数字,是 App 内可以复现的实测。
目前真机结果:
读入:122 tok/s,生成:33.0 tok/s,总耗时:1.1s
这个速度已经足够支撑健康档案里的短问答、趋势解读和报告整理。
为了让它不是“套壳聊天框”,我把 AI 链路拆成了几层:
UI 不直接调模型。
拍照识别走 CaptureService,身体档案问答走 HealthExportService,趋势解读走 TrendInsightService,最后统一进入 AIRuntime。
AIRuntime 是 actor,里面做了推理闸门。同一时间只允许一个重推理任务占模型内存。因为端侧模型最怕的不是慢,而是多个任务同时加载,内存峰值上去以后直接被系统杀掉。
这也是做端侧 AI 和做云端 API 最大的区别之一:
云端是请求排队。
手机上是内存、功耗、模型加载、UI 响应一起排队。
我觉得这个项目真正有价值的地方,不是“AI 能不能讲两句漂亮话”,而是它把健康资料变成了自己的长期记忆。
比如:
你不用再翻相册找去年那张化验单。
也不用每次看医生前,临时回忆“我最近到底哪几项不正常”。
你可以把症状、用药、指标、报告都记在一个地方,需要时生成一份就诊摘要。它不会替医生判断,也不会给剂量建议,只负责把你已有的信息整理清楚。
对普通人来说,这比一个会聊天的健康机器人更实用。
这次我最想表达的创新点有三个:
第一,健康 AI 应该默认本地优先。
不是所有数据都适合上传。健康数据尤其应该有“不出设备也能用”的选择。
第二,端侧大模型已经能做完整产品闭环。
不是只跑一个 demo prompt,而是接进真实 App:模型管理、性能自检、拍照识别、趋势解读、问答摘要、失败兜底、隐私设置,这些都要一起工作。
第三,RAG 不一定非要 embedding。
康康里的健康记录本来就是结构化数据。指标名、时间、报告类型、症状、用药都很明确。很多问题可以先抽取意图,再从 SwiftData 里查相关记录,最后让本地模型生成回答。这样更轻,也更适合手机。
现在还有很多地方可以继续打磨,比如报告详情页、飞行模式演示图、Live Activity 的实时 tok/s、更多真机性能对比。
但这版已经证明了一件事:
个人健康档案 + 本地大模型 + MNN 端侧推理,是可以组成一个完整应用的。
如果说云端 AI 更像一个很聪明的外部顾问,那我希望康康更像一个安静放在手机里的私人健康档案员。
它不替你诊断。
不替医生做决定。
它只帮你把自己的身体记录收好、看懂、在需要的时候讲清楚。
这就是我这次做「康康」的原因。
参加 #比赛官方话题# 的作品记录。后面如果有时间,我会继续补飞行模式演示、Live Activity 和完整 demo 视频。
声明:康康只做健康信息记录、整理和科普式解读,不是医疗器械,不提供诊断、治疗、用药或剂量建议。任何健康决策请咨询专业医生。
精简版正文
我做了一个叫「康康」的 iOS App。
它能把体检报告、化验指标、症状、日记和用药记录整理成一个本地健康档案,再用 AI 帮你做大白话解读。
最关键的是:不上传。
我不想把体检报告这种高度隐私的数据拍给云端模型,所以这次把 Qwen3.5-2B 放进了手机本地,主推理路径用 MNN,在支持 SME2 的 iPhone 上走端侧 CPU 加速。
现在 App 里已经能看到完整闭环:
拍报告 → 本地识别 → 结构化指标 → 趋势图 → 身体档案问答 → 就诊摘要。
技术上做了双后端:
- MNN:真机主路径,CPU/SME2
- MLX:模拟器和兜底
App 里还有性能自检页,当前真机实测:
读入 122 tok/s,生成 33.0 tok/s,总耗时 1.1s。
我觉得这个项目最有意思的地方,不是做了一个 AI 聊天框,而是把本地大模型真正接进了健康档案系统。
它不会替你诊断,也不会给用药建议。它只做三件事:
帮你收好记录,帮你看懂变化,帮你在看医生前把重点讲清楚。
健康数据应该先属于自己。
这就是我做「康康」的原因。
#比赛官方话题# #端侧AI #MNN #Qwen #本地大模型 #健康管理 #iOS开发 #SwiftUI #隐私保护 #独立开发
9 宫格图片排序
当前素材可发版
| 顺序 | 图片 | 封面字/图中文字 | 作用 |
|---|---|---|---|
| 1 | 21-首页-健康日历趋势提醒.png |
不上传的健康 AI 档案 | 封面,先讲产品是什么 |
| 2 | 19-报告归档-核对报告信息.png |
拍报告,自动变档案 | 展示核心创意:报告归档 |
| 3 | 22-框选异常指标-本地识别中.png |
图片在本地识别 | 展示视觉识别过程 |
| 4 | 06-推理引擎-MNN-SME2性能自检.png |
Qwen + MNN + SME2 | 技术证据和比赛亮点 |
| 5 | 07-模型管理-Qwen已就绪.png |
1.19GB 模型在手机里 | 证明不是云端 API |
| 6 | 11-身体档案-就诊摘要生成结果.png |
就诊前 30 秒整理重点 | 展示应用价值 |
| 7 | 09-趋势详情-体重AI解读.png |
长期趋势,AI 讲人话 | 展示长期使用价值 |
| 8 | 20-药品识别-核对药品.png |
药盒也能本地识别 | 展示扩展场景 |
| 9 | 02-Xcode开发调试界面.png |
6 周独立开发记录 | 收尾,增强真实开发感 |
如果补图后的更强版
| 顺序 | 建议图片 | 封面字/图中文字 |
|---|---|---|
| 1 | 首页 + 大字封面 | 不上传的健康 AI 档案 |
| 2 | 飞行模式 + 正在生成 | 断网也能 AI 解读 |
| 3 | 报告拍照前后对比 | 拍一下,报告变档案 |
| 4 | 报告详情三 Tab | 原图、解读、指标都留存 |
| 5 | MNN 性能自检 | Qwen + MNN + SME2 |
| 6 | 模型管理页 | 模型真的在本机 |
| 7 | 身体档案摘要 | 看医生前自动整理 |
| 8 | 趋势页 | 长期变化看得懂 |
| 9 | Xcode/架构图 | SwiftUI + SwiftData + MNN |
封面字方案
方案 A:大众向
主字:
体检报告 AI 解读
副字:
不联网,不上传,只在手机里跑
角标:
6 周独立开发 demo
方案 B:技术向
主字:
把 Qwen 塞进 iPhone
副字:
MNN + SME2 本地推理健康档案
角标:
decode 33.0 tok/s
方案 C:参考 Day 风格
主字:
Day42 做完一个本地健康 AI
副字:
体检报告拍一下,但不交给云端
角标:
SwiftUI + MNN + Qwen
推荐使用方案 C,更贴近你给的参考笔记风格,同时还能保留项目技术点。
每张图建议加字
-
21-首页-健康日历趋势提醒.png- 主字:Day42 做完一个本地健康 AI
- 小字:体检报告、指标、症状、用药都存在手机里
-
19-报告归档-核对报告信息.png- 主字:拍报告,自动变档案
- 小字:原图和结构化信息一起保存
-
22-框选异常指标-本地识别中.png- 主字:图片识别也在本地
- 小字:异常指标可框选识别
-
06-推理引擎-MNN-SME2性能自检.png- 主字:Qwen + MNN + SME2
- 小字:生成 33.0 tok/s
-
07-模型管理-Qwen已就绪.png- 主字:模型真的在手机里
- 小字:Qwen3.5-2B 本地就绪
-
11-身体档案-就诊摘要生成结果.png- 主字:看医生前自动整理
- 小字:症状、指标、用药一份摘要带走
-
09-趋势详情-体重AI解读.png- 主字:长期变化看得懂
- 小字:折线图 + AI 大白话解读
-
20-药品识别-核对药品.png- 主字:药盒也能入档
- 小字:只记录,不提供用药建议
-
02-Xcode开发调试界面.png- 主字:不是套壳聊天框
- 小字:SwiftUI + SwiftData + MNN 端侧推理
仍建议补充的截图
- 飞行模式打开 + App 正在流式生成,这是“不上传”的最强证据。
- 报告详情页三 Tab:原图 / 解读 / 指标,用于证明档案浏览闭环。
- Face ID 启动锁页面,用于补足隐私三件套。
- 如果 Live Activity 已能跑,补锁屏 tok/s,非常适合比赛记忆点。
标签
#比赛官方话题# #端侧AI #MNN #Qwen #本地大模型 #健康管理 #体检报告解读 #隐私保护 #iOS开发 #SwiftUI #独立开发 #数字健康