隐私政策
Privacy Policy
版本 v1.0 | 生效日期 2026-04-10 | 最后更新 2026-04-16
免责声明:本政策由产品团队起草,正式发布前需由专业法律顾问审阅(尤其是 GDPR / CCPA / COPPA 合规条款)。
本文档分为中英双语两部分。中文版为主,英文版为 Reference Translation。如发生法律争议,以中文版为准。
1. 概述
Nourai("我们"、"本应用")是由 Paradox 团队开发的 AI 食物营养追踪应用。我们致力于以最小必要数据原则为您提供服务。本隐私政策说明我们收集哪些信息、如何使用这些信息、以及您享有的数据权利。
使用 Nourai 即表示您已阅读并理解本政策。如您不同意本政策的任何内容,请不要使用本应用。
2. 我们收集的数据
2.1 账户信息(必填)
- 电子邮箱地址(用于登录与找回密码)
- 密码哈希值(使用 argon2 算法哈希存储,我们永远不会存储您的明文密码)
- 显示名称(display_name,可选)
- 账户创建时间与最后登录时间
2.2 用户画像(可选)
- 生理数据:身高(cm)、体重(kg)、年龄、性别
- 活动水平(sedentary / lightly active / moderately active / very active)
- 健康目标(减重 / 增重 / 维持 / 增肌)
- TDEE 与每日能量预算(由您的画像计算得出)
2.3 饮食记录
- 食物名称、克重、餐次(早/午/晚/加餐)、时间戳
- 每条记录的营养数据(能量、碳水、蛋白质、脂肪、纤维、糖分、钠等)
- 关联的食物照片 URL(存储于 MinIO / S3 对象存储)
- 您主动上传的营养标签照片
2.4 AI 识别数据
- 上传的食物照片(用于 Claude Vision 识别食物种类与估重)
- 上传的营养标签照片(用于 OCR 提取营养数据)
- 识别结果(食物候选、置信度、AI 估计的克重)
我们承诺:这些照片仅用于识别当前记录,不会用于训练 AI 模型,不会在用户之间共享。
2.5 语音数据
- 您通过 App 内"说话记录"功能录制的音频
- 音频仅临时上传至服务器进行转录(OpenAI Whisper API),转录完成后立即从我们的服务器删除
- 转录后的文字会保留于相应的饮食记录或聊天历史中
2.6 Nour AI 对话
- 您与 AI 助手 Nour 的聊天消息(message / response / conversation_id)
- 用于维持对话上下文的会话 ID
2.6.1 情绪洞察(Opt-in,默认关闭)
- 类别:情绪状态(Emotional State)— 从您与 Nour 的对话中推断出的情绪分类(joy / stress / fatigue / motivation / frustration / neutral)及其置信度
- 采集条件:仅当您在"设置 → 情绪洞察"中显式开启后才会采集。默认 OFF
- 用途:仅用于为您自己的 Insights & Analytics(周报、心情图表)提供洞察。不用于广告、不用于推送、不跨用户聚合
- 数据归属:该数据与您的账户(user_id)关联
- 保留:由您自己决定。关闭开关仅停止新的观测记录,不会自动删除历史。您可随时通过 "设置 → 情绪洞察 → 清空历史记录" 或调用
DELETE /api/v1/users/me/emotions立即硬删除所有已记录的情绪观测
2.7 使用统计与诊断
- 崩溃报告(通过 Sentry SDK 收集,不包含您的饮食记录或个人资料)
- 设备型号、操作系统版本、应用版本(匿名)
- Sentry 为可选项:您可在设置中禁用崩溃报告上传
2.8 我们不收集的数据
- 我们不收集精确地理位置信息(GPS)
- 我们不收集联系人、日历、相册中的其他照片
- 我们不访问通话记录、短信或其他 App 数据
- 我们不使用第三方广告追踪 SDK(如 Facebook Pixel、Google Analytics for Firebase Ads)
- 我们不出售您的个人数据
3. 数据用途
您的数据仅用于以下目的:
- 提供核心功能:记录饮食、计算营养摄入、显示历史数据、生成趋势洞察
- AI 识别:将食物照片发送至 Anthropic Claude API(默认)或 Google Gemini API(可配置备选)识别食物与估重;将营养标签照片发送至同一 provider 进行 OCR;将语音发送至 OpenAI Whisper 进行转录
- Nour AI 助手:将您的消息与相关饮食上下文发送至 Anthropic Claude API 或 Google Gemini API 生成回复
- 营养数据匹配:使用食物名称在本地营养数据库(缓存自 USDA + Open Food Facts)中查询营养值
- 个性化:根据 TDEE 与画像显示每日能量预算与宏量素目标
- 产品改进:汇总匿名崩溃报告以修复 Bug(通过 Sentry)
营养数据零 LLM 编造承诺:我们的 AI 仅识别食物种类并估计重量,所有营养数值均来自权威数据库(USDA、Open Food Facts),绝不由 LLM 生成。
4. 第三方服务
| 服务商 | 用途 | 数据类型 | 隐私政策链接 |
|---|---|---|---|
| Anthropic (Claude API) | 食物识别 / 营养表 OCR / Nour 对话(默认 provider) | 食物照片、营养标签照片、聊天消息 | anthropic.com/legal/privacy |
| Google (Gemini API) | 食物识别 / 营养表 OCR / Nour 对话(可切换 provider) | 食物照片、营养标签照片、聊天消息 | policies.google.com/privacy |
| OpenAI (Whisper API) | 语音转录 | 临时音频文件 | openai.com/policies/privacy-policy |
| Sentry | 崩溃监控(可选) | 崩溃堆栈、设备型号、应用版本 | sentry.io/privacy |
| USDA FoodData Central | 营养数据库(公有领域 Public Domain) | 无数据回传 | fdc.nal.usda.gov |
| Open Food Facts | 营养数据库(ODbL 许可) | 无数据回传 | openfoodfacts.org/privacy |
| MinIO / S3 兼容对象存储 | 食物照片存储 | 食物照片 | 自托管 |
4.1 Open Food Facts ODbL 声明
Nourai 使用的部分营养数据来源于 Open Food Facts,遵循 Open Database License (ODbL) v1.0。依据 ODbL 规定,任何基于本应用派生的营养数据库仍保持 ODbL 许可。原始数据库贡献者归属信息可在 openfoodfacts.org 查阅。
4.2 USDA Public Domain 声明
USDA FoodData Central 的数据属于美国政府公有领域作品,无版权限制。
5. 数据存储
5.1 本地存储
- iOS:认证 Token 存储于系统 Keychain,饮食记录缓存使用 SwiftData
- Android:认证 Token 存储于 EncryptedSharedPreferences(AndroidX Security),饮食记录缓存使用 Room
5.2 云端存储
- 数据库:PostgreSQL(带 pgvector 扩展),部署于我们自托管的基础设施
- 对象存储:MinIO(S3 兼容),用于存储食物照片
- 传输加密:所有客户端与服务器之间的通信均通过 HTTPS(TLS 1.3)
5.3 数据保留期限
- 账户有效期间:我们保留所有您创建的数据
- 账户注销后:我们将在 30 天内从生产数据库硬删除您的所有数据;备份中的数据将在 90 天内被轮换覆盖
- 崩溃报告:Sentry 默认保留 90 天
- 音频文件:转录完成后立即删除,不保留
- 服务器访问日志:保留 30 天用于安全审计
6. 用户权利(GDPR 第 15-22 条)
如果您是欧盟经济区(EEA)、英国或加州居民,您享有以下权利:
6.1 访问权(GDPR Art. 15)
您有权获取我们持有的关于您的个人数据副本。
6.2 更正权(GDPR Art. 16)
您可在 App 内"个人资料"页面随时修改用户画像。您也可联系我们更正其他不准确的数据。
6.3 删除权 / 被遗忘权(GDPR Art. 17)
您可在设置页面注销账户。请求删除后:
- 我们立即从生产数据库级联删除您的所有个人数据(用户资料、饮食记录、对话历史、成就、上传的食物照片)
- 端点:
DELETE /api/v1/users/me(已上线) - 食物照片会从 MinIO/S3 对象存储同步删除
- 备份中的数据在 90 天内被轮换覆盖
6.4 数据可携权(GDPR Art. 20)
您有权以结构化、通用、机器可读的格式(JSON)获取您的个人数据副本。
- 端点:
GET /api/v1/users/me/export(已上线) - 导出内容:用户资料 + 饮食记录 + 对话历史 + 已解锁的成就
- 敏感字段(密码哈希、refresh token 哈希)会被过滤后再返回
6.5 反对处理权(GDPR Art. 21)
您可以反对特定目的的数据处理(如崩溃报告)。您可在设置中禁用 Sentry。
6.6 撤回同意权(GDPR Art. 7)
您可随时撤回您的同意,不影响撤回前基于同意的处理的合法性。
6.7 权利行使方式
要行使上述任何权利,请发送邮件至 privacy@nourai.app。我们将在 30 天内响应您的请求。
7. 儿童隐私
Nourai 不适用于 13 岁以下儿童。我们不会有意收集 13 岁以下儿童的个人信息。如果我们发现误收集了此类数据,将立即删除。
如果您是家长并发现您的孩子向我们提供了个人信息,请联系 privacy@nourai.app。
8. 数据安全措施
我们采取以下措施保护您的数据:
- 传输加密:HTTPS (TLS 1.3) 强制启用
- 密码安全:argon2id 算法哈希,盐值随机
- 认证:JWT 访问令牌(短期有效) + Refresh Token 轮换机制
- Refresh Token 哈希:Refresh Token 以 SHA-256 哈希形式存储于数据库
- 移动端密钥存储:iOS Keychain / Android EncryptedSharedPreferences
- 数据库防护:参数化 SQL 查询(防 SQL 注入),sqlx 编译期 SQL 校验
- API 安全:速率限制 (Rate Limit) 中间件,JWT 认证中间件
- 最小权限原则:服务账号仅授予必需的数据库权限
尽管我们采取合理措施,但互联网传输与电子存储不存在 100% 安全。请妥善保管您的账户密码。
9. Cookie 和追踪
Nourai 是原生 iOS / Android 应用,不使用 Cookie。我们不使用任何第三方分析 SDK(无 Google Analytics、无 Facebook SDK、无 AppsFlyer、无 Branch.io)。
10. 国际数据传输
- 主要处理地:我们的服务器位于[待定区域],您的数据主要在此处理与存储
- 跨境传输:使用 Anthropic / OpenAI / Sentry 时,您的数据可能被传输至美国等第三国
- 传输保障:这些第三方服务商均承诺遵循 GDPR Standard Contractual Clauses (SCC) 或等效的跨境传输保护机制
11. 政策更新
我们可能会不时更新本政策。重大变更将通过以下方式通知您:
- 在 App 内显示通知横幅
- 更新本文件顶部的"最后更新"日期
- 对于重大变更,通过电子邮件通知
继续使用 Nourai 即表示您接受更新后的政策。
12. 联系我们
- 隐私相关问题:privacy@nourai.app
- 官网:https://nourai.app
- 数据保护官(DPO):dpo@nourai.app (待指定)