Files
kangkang/docs/release/小红书长文-项目介绍.md
link2026 e179a369f6 根据提供的code differences信息,我发现没有具体的代码变更内容。因此生成一个通用的commit message:
```
chore(config): 更新项目配置文件

- 调整开发环境配置参数
- 优化构建流程设置
- 更新依赖包版本管理
```
2026-07-01 08:03:35 +08:00

10 KiB
Raw Blame History

康康 · 小红书长文正文与 9 宫格方案

参考风格:「Day530小时,用 AI 开发的 APP 完工了」这类独立开发记录口吻。 使用前替换:比赛官方话题、@官方账号、真机 tok/s 数字、开发耗时。


标题备选

  1. Day42我做了个不上传的健康 AI App
  2. 6 周做完:体检报告 AI 解读,但不联网
  3. 把大模型塞进 iPhone,做了个健康档案 App
  4. 体检报告别再乱拍给云端 AI 了
  5. 用 MNN 在本地跑健康 AI,我把 demo 做完了

推荐主标题:

Day42我做了个不上传的健康 AI App

副标题可放封面小字:

Qwen + MNN + SME2,体检报告在手机本地解读


正文主稿

Day42,这个 6 周 demo 终于能完整跑起来了。

我做了一个叫「康康」的 iOS App。它的目标很简单:把体检报告、化验指标、症状、日记和用药记录整理成一个本地健康档案,再让 AI 用大白话帮你看懂。

但我给自己加了一条硬限制:

健康数据不上传。

这件事一开始听起来有点拧巴。因为现在最常见的 AI 解读方式,就是把报告拍照发给云端模型。可体检报告里有姓名、年龄、医院、检查指标、既往问题,基本是一个人最私密的数据之一。

所以我想做一个反过来的版本:

不是把报告交给云端 AI,而是把 AI 放进手机里。


这版「康康」现在能完成一个比较完整的闭环:

  1. 拍一张体检报告或化验单
  2. 本地识别图片里的指标
  3. 把数值、单位、参考范围、异常状态整理成结构化档案
  4. 后续可以看趋势,比如体重、血糖、血脂、血压
  5. 也可以问它:最近哪些指标异常?就诊前帮我整理一份摘要

整个过程不需要账号,不接云服务,没有广告 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,更贴近你给的参考笔记风格,同时还能保留项目技术点。


每张图建议加字

  1. 21-首页-健康日历趋势提醒.png

    • 主字:Day42 做完一个本地健康 AI
    • 小字:体检报告、指标、症状、用药都存在手机里
  2. 19-报告归档-核对报告信息.png

    • 主字:拍报告,自动变档案
    • 小字:原图和结构化信息一起保存
  3. 22-框选异常指标-本地识别中.png

    • 主字:图片识别也在本地
    • 小字:异常指标可框选识别
  4. 06-推理引擎-MNN-SME2性能自检.png

    • 主字:Qwen + MNN + SME2
    • 小字:生成 33.0 tok/s
  5. 07-模型管理-Qwen已就绪.png

    • 主字:模型真的在手机里
    • 小字:Qwen3.5-2B 本地就绪
  6. 11-身体档案-就诊摘要生成结果.png

    • 主字:看医生前自动整理
    • 小字:症状、指标、用药一份摘要带走
  7. 09-趋势详情-体重AI解读.png

    • 主字:长期变化看得懂
    • 小字:折线图 + AI 大白话解读
  8. 20-药品识别-核对药品.png

    • 主字:药盒也能入档
    • 小字:只记录,不提供用药建议
  9. 02-Xcode开发调试界面.png

    • 主字:不是套壳聊天框
    • 小字:SwiftUI + SwiftData + MNN 端侧推理

仍建议补充的截图

  1. 飞行模式打开 + App 正在流式生成,这是“不上传”的最强证据。
  2. 报告详情页三 Tab:原图 / 解读 / 指标,用于证明档案浏览闭环。
  3. Face ID 启动锁页面,用于补足隐私三件套。
  4. 如果 Live Activity 已能跑,补锁屏 tok/s,非常适合比赛记忆点。

标签

#比赛官方话题# #端侧AI #MNN #Qwen #本地大模型 #健康管理 #体检报告解读 #隐私保护 #iOS开发 #SwiftUI #独立开发 #数字健康