Skip to content

AI 隐私与数据安全

AI 功能为 Obsidian 带来了强大的辅助能力,但同时也引入了数据安全和隐私的新考量。本文将帮助你了解 AI 使用中的隐私风险,并提供安全的使用策略。

为什么需要关注 AI 隐私?

Obsidian 的核心理念是本地优先——你的数据始终存储在自己的设备上。但 AI 功能通常需要将数据发送到外部服务处理,这与本地优先的理念存在张力。

需要关注的核心问题

  • 数据传输:你的笔记内容会被发送到哪里?
  • 数据存储:外部服务会保存你的数据吗?保存多久?
  • 数据使用:你的数据会被用于训练模型吗?
  • 访问控制:谁可以访问你发送的数据?
  • 合规性:是否符合你所在行业的数据安全要求?

数据流分析

典型 AI 插件的数据流

text
你的笔记 → AI 插件处理 → 网络请求 → AI 服务商 → 返回结果 → 插件展示
     ↑                                              ↑
  本地数据                                      云端处理

各环节的隐私风险

环节风险等级说明
插件读取笔记仅在本地,数据不出设备
数据预处理本地分词、截断等操作
网络传输HTTPS 加密,但数据仍经过网络
云端处理数据到达第三方服务器
结果存储服务商可能缓存或记录请求

主流 AI 服务隐私对比

OpenAI (GPT 系列)

项目说明
API 数据使用默认不用于训练(2023.3 起政策)
数据保留30 天后删除(用于滥用监测)
传输加密✅ TLS 1.2+
数据驻留美国
企业版提供零数据保留协议

Anthropic (Claude 系列)

项目说明
API 数据使用不用于训练
数据保留请求后不存储内容
传输加密✅ TLS
数据驻留美国
安全认证SOC 2 Type II

本地模型 (Ollama / LM Studio)

项目说明
数据使用完全本地,不传输
数据保留无云端存储
传输加密不适用(本地)
数据驻留你的设备
隐私等级⭐⭐⭐⭐⭐

选择建议

  • 日常使用、非敏感内容:云服务 API 即可
  • 包含个人隐私/商业机密:优先使用本地模型
  • 学术/医疗/法律等敏感领域:务必使用本地模型

安全使用策略

策略一:内容过滤

在将笔记发送给 AI 之前,过滤敏感信息:

手动过滤:

  • 只选择需要 AI 处理的文本片段
  • 避免将包含密码、身份证号等信息的笔记发给 AI
  • 使用脱敏后的文本进行 AI 处理

自动过滤示例(Templater 脚本):

javascript
<%*
// 脱敏函数
function sanitize(text) {
  // 移除手机号
  text = text.replace(/1[3-9]\d{9}/g, '[手机号已脱敏]');
  // 移除身份证号
  text = text.replace(/\d{17}[\dXx]/g, '[身份证已脱敏]');
  // 移除邮箱
  text = text.replace(/[\w.-]+@[\w.-]+\.\w+/g, '[邮箱已脱敏]');
  // 移除密码字段
  text = text.replace(/密码[::]\s*\S+/g, '密码:[已隐藏]');
  return text;
}

const content = sanitize(tp.file.content);
tR += content;
%>

策略二:分层处理

根据内容敏感度选择不同的 AI 方案:

text
敏感度评估:
├── 🟢 公开信息 → 云端 AI(效率优先)
│   ├── 学习笔记
│   ├── 读书摘要
│   └── 技术文档
├── 🟡 个人信息 → 加密传输 + 云端 AI
│   ├── 工作记录
│   └── 项目笔记
└── 🔴 机密信息 → 本地 AI(安全优先)
    ├── 财务数据
    ├── 医疗记录
    └── 法律文件

策略三:使用本地 AI

最安全的方案是将 AI 运行在本地,数据完全不离开设备。

推荐方案:

方案模型大小最低内存推荐场景
Ollama + Qwen2.5 7B4.5 GB8 GB日常写作辅助
Ollama + Llama 3.1 8B4.7 GB8 GB英文内容处理
Ollama + Qwen2.5 14B9 GB16 GB更高质量的输出
LM Studio按需8-32 GB图形界面偏好

详见

完整的本地 AI 部署指南请参考 本地 AI 部署

各插件隐私配置

Text Generator

yaml
# 隐私相关设置
api_type: "openai"        # 或 ollama(本地)
base_url: "http://localhost:11434/v1"  # 本地 Ollama
api_key: "ollama"         # 本地无需真实 key
max_tokens: 500           # 限制生成长度
temperature: 0.7

# 建议关闭
send_context: false       # 不自动发送上下文

Smart Connections

yaml
# 隐私相关设置
api_provider: "local"     # 使用本地嵌入模型
embedding_model: "local"  # 本地嵌入
chat_model: "local"       # 本地对话模型

# 如果必须使用云服务
# api_key: "sk-xxx"
# embedding_model: "openai-text-embedding-3-small"

Obsidian Copilot

yaml
# 隐私相关设置
model_provider: "ollama"   # 使用本地模型
ollama_model: "qwen2.5:7b"
base_url: "http://localhost:11434"

# QA 链设置
qa_chain_type: "stuff"    # 控制上下文注入方式

API Key 安全管理

安全存储

  • 不要将 API Key 硬编码在笔记或模板中
  • 不要将包含 API Key 的文件提交到 Git 仓库
  • 使用 Obsidian 插件内置的 Key 管理功能
  • 定期轮换 API Key

.gitignore 配置

确保 .gitignore 包含以下内容:

gitignore
# Obsidian 配置(可能包含 API Key)
.obsidian/plugins/*/data.json

# 环境变量文件
.env
.env.local

费用控制

设置 API 使用限额,避免意外产生高额费用:

yaml
# OpenAI API 费用参考(2024 年价格)
gpt-4o:
  input: $2.50 / 1M tokens
  output: $10.00 / 1M tokens

gpt-4o-mini:
  input: $0.15 / 1M tokens
  output: $0.60 / 1M tokens

# 控制建议
monthly_budget: 10  # 美元/月
max_tokens_per_request: 1000

合规性考量

个人用户

  • 通常只需关注服务商隐私政策
  • 避免将他人隐私信息发给 AI
  • 注意 AI 生成内容的版权问题

企业用户

  • 确认 AI 服务是否符合公司安全策略
  • 检查数据处理协议(DPA)
  • 评估数据跨境传输合规性
  • 建立内部 AI 使用规范

特殊行业

行业注意事项
医疗HIPAA 合规,患者数据不可外传
金融数据驻留要求,审计追踪
法律律师-客户特权保护
教育学生数据保护(FERPA)
政府数据主权和安全认证

最佳实践清单

入门级

  • [ ] 阅读 AI 插件和服务的隐私政策
  • [ ] 不将包含密码/密钥的笔记发给 AI
  • [ ] 定期检查 API 使用记录
  • [ ] 为 API 账户设置费用上限

进阶级

  • [ ] 对敏感内容使用本地 AI 模型
  • [ ] 实施内容脱敏机制
  • [ ] 使用 Templater 脚本自动过滤敏感信息
  • [ ] 定期轮换 API Key

专家级

  • [ ] 部署本地 AI 服务(Ollama/LM Studio)
  • [ ] 配置网络代理隔离 AI 请求
  • [ ] 审计 AI 插件的源代码
  • [ ] 建立完整的 AI 使用安全规范

常见问题

问:AI 会读取我所有的笔记吗?

答:不会。AI 插件只在你主动触发时才会读取当前笔记或你选中的文本。但部分插件(如 Smart Connections)会为所有笔记建立嵌入索引,此时应使用本地嵌入模型。

问:我的笔记会被用于训练 AI 模型吗?

答:取决于服务商。OpenAI API 自 2023 年 3 月起默认不使用 API 数据训练模型。但如果使用免费版 ChatGPT 网页,数据可能被用于改进服务。

问:本地 AI 的输出质量够用吗?

答:7B-14B 参数的本地模型在日常写作辅助、总结、翻译等任务上已经足够。对于复杂推理和代码生成,云端大模型仍有优势。

问:如何确认插件没有偷偷上传数据?

答:可以在 Obsidian 开发者工具(Ctrl+Shift+I)的 Network 标签中监控网络请求,或使用 Wireshark 等工具抓包分析。

相关资源

最后更新:2026年4月10日编辑此页反馈问题