Vana 隐私说明
Vana 没有服务器,也没有账号。我们(开发者)看不到你的任何数据——它不经过我们手上的任何一台机器。
你的数据只去两个地方:留在这台 iPhone 上,或者发给你自己在设置里配置的那家模型服务,用来回答你刚问的那句话。
数据存在哪里
以下内容都存在 Vana 在这台设备上的沙盒里,不上传、不同步:
- 对话记录(含每一轮查过的健康数据)
- 长期记忆(「关于你」的那几十条短句)
- 用药与补剂表
- 你拍摄或选取的化验单、报告、药盒照片与文件
照片、化验单和用药表用 iOS 的完整文件保护(completeFileProtection)加密——设备锁屏时它们在磁盘上是读不出来的。API key 保存在系统钥匙串里,不在上述任何文件中。
这些数据不进备份。它们被明确排除在 iCloud 备份和电脑备份之外——健康数据不应该离开这台设备,备份也不例外。代价请知悉:换新手机时,这些对话、记忆、用药表和照片不会跟着走,需要在新设备上重新开始。
会离开这台设备的
要有人回答你的问题,问题本身就得发出去。发给谁由你决定——你在设置里选定 provider 并填入自己的 API key,Vana 只是把请求发给那一家。发出去的内容包括:
- 你打的字,以及此前这条对话里的往来
- 从 Apple 健康读到的聚合数值(按天或按晚,例如「8 月 6 日睡眠 6.2 小时」),不是原始样本
- 化验单、报告、药盒在本机识别出来的文字,以及你选取的文档里的文字
- 照片原图本身——默认不发,只有你同意的那几张才发。默认设置下,Vana 只在本机一个字都认不出来时(一顿饭、一处皮疹这类,它们的信息本来就不是字)问你一句,你点了才发;认出了字的照片(化验单、药盒、成分表)连问都不会问,因为识别出来的文字已经够回答问题了。这个默认可以在「设置 › 照片」里改成一张都不问、或者每张都发;无论哪一档,发送之前点开任意一张都能单独决定这一张发不发。
- 你所在的城市(在你授权位置的前提下)
- 长期记忆和用药表里的内容(在你没有关掉这两项功能的前提下)
如果你填了 serper.dev 的搜索 key,Vana 在需要查外部资料时会把搜索词发给该服务。搜索词里不包含你的健康数据或个人情况——这一点同时写在工具说明和系统提示里。
这两家服务如何处理收到的内容,适用它们各自的隐私政策,不受 Vana 控制。选择哪一家、要不要填搜索 key,都在你手上。
不会离开这台设备的
- 文件原件,以及默认情况下的照片原图。文字识别全部在本机完成,发出去的只有识别出来的文字。一张化验单上有姓名、就诊号、医院、科室和医生签名,而回答问题只需要那几行数值——这就是默认不发原图的理由。原图发不发由你决定,见上一节。
- 按住说话的录音。语音识别用 iOS 的本机模型完成,音频不联网、不写入磁盘,只有识别出来的文字会留在输入框里——而那段文字要等你按发送才会发出去。
- 精确位置。Vana 只申请「大概位置」,并且只把城市名放进请求里;经纬度坐标一个字都不会发出去,也不保存在本机。
- 你的 API key。只在钥匙串里,只用于向你选定的那家服务发请求。
- Apple 健康的原始样本。逐条心率、逐次步数只在本机用于画图和聚合,不进入发出去的请求。
- 对话记录、记忆和用药表本身。它们只在回答当下那个问题时按需拼进请求,不存在任何云端副本。
Apple 健康数据
- Vana 对 HealthKit 只读,从不写入或修改你的健康记录。
- 健康数据不会被用于广告、营销或数据挖掘,也不会出售或提供给任何数据经纪商。它只用于回答你在对话里提出的问题。
- Vana 不把健康数据保存到 iCloud,也不做跨设备同步;相关文件同样排除在设备备份之外。
- 如果你在「健康」App 里连接了医疗机构,Vana 可以读取其中的化验结果与体征用于对话;诊断与用药类记录不读取。你随时可以在「健康」App > 共享 > App > Vana 里逐项关闭。
- Apple 健康数据只属于这台设备的主人。给家人建立的成员是完全隔离的另一份数据,Vana 在那里读不到任何 Apple 健康数据。
位置
只申请「大概位置」,用于判断季节、气候、时差和当地就医方式。授权面板里连「精确位置」的开关都不会出现。不授权的话请求里完全不带位置,其余功能照常。撤销授权后,上一次记下的城市会立刻清空。
麦克风与语音输入
麦克风权限只用于你按住「说话」按钮的那几秒。识别由 iOS 的本机语音模型完成(第一次使用时系统会下载一份模型到本机),全程不联网;录音既不保存也不发送,松开手指后只留下识别出来的文字,填进输入框等你确认——不会自动发送。为了把药名和健康指标名认准,Vana 会把你记在用药表里的名称和一组指标名作为提示交给本机识别器,这份提示同样不出这台设备。
相机与照片
相机和相册权限只用于你主动发起的那一次拍摄或选取。识别在本机完成;照片保存在 app 沙盒里,删除对应的对话时会连同照片一起删除。照片原图本身只有在你同意的情况下才会发给模型服务——默认是「本机认不出文字时问一句」,可以在设置里改,也可以对每一张单独决定,见上文两节。
通知
早晚的 check-in 是本机排程的本地通知,不经过任何推送服务器。通知正文在排程时就已经写好并存在本机。
「不保存的对话」
开启这个开关后,那条对话不写入磁盘、不进入会话列表、不参与记忆抽取,照片也只留在内存里。但要说清楚:问题本身仍然要发给你配置的模型服务才有人回答,这一步这个开关挡不住。
你可以怎样删除数据
- 单条对话:在会话列表里左滑删除(连同该对话里的照片一并删除)。
- 全部对话:设置 > 对话 > 清空对话。
- 记忆:设置 > 记忆里逐条删除。
- 用药与补剂:在用药表里逐条删除。
- 某位家庭成员的全部数据:在成员列表里删除该成员,其整个目录会被一并删除。
- 全部数据:删除 app。所有内容都在 app 沙盒内,随 app 一起消失。
没有账号,因此也没有需要注销的账号;我们手上没有你的任何数据副本,所以无需向我们提出删除请求。
儿童
Vana 不面向 13 岁以下的儿童,也不会有意收集他们的信息。
本说明的变更
内容有变更时会更新本页顶部的生效日期,并随 app 更新一起发布。
联系方式
关于隐私的问题可以通过 GitHub Issues 提出,或发邮件到 zjywill@gmail.com。