为什么需要AI整理笔记?
我承认,我是个笔记囤积狂。从Notion到Obsidian,从Markdown到PDF,攒了上千条笔记,但真正回顾的不到10%。直到我用AI智能体批量处理,才让这些"死"笔记活了过来。
效果先看
运行一次脚本后:
- 每篇笔记自动获得3-5个标签(如#AI、#效率工具)
- 自动生成50字以内的摘要
- 发现"Python"和"数据分析"笔记之间的关联,自动添加双向链接
你需要准备什么
- Obsidian(或其他本地Markdown编辑器)
- OpenAI API Key(或兼容API)
- Python 3.8+
- 一点点耐心
操作步骤
1. 安装依赖
pip install openai pandas tiktoken2. 配置API
在环境变量中设置:
export OPENAI_API_KEY='你的key'3. 脚本核心逻辑
我写了一个Python脚本,遍历Obsidian仓库下的所有Markdown文件,调用GPT-3.5-turbo进行批量处理。
import os
import openai
from pathlib import Path
openai.api_key = os.getenv('OPENAI_API_KEY')
def process_note(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
prompt = f"""分析以下笔记,输出JSON格式:
{{
"tags": ["标签1", "标签2"],
"summary": "一句话摘要",
"related_terms": ["关联词1", "关联词2"]
}}
笔记内容:
{content[:2000]}"""
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=[{'role': 'user', 'content': prompt}],
temperature=0.3
)
return response.choices[0].message.content
# 遍历笔记目录
notes_dir = Path('/path/to/your/vault')
for md_file in notes_dir.rglob('*.md'):
result = process_note(md_file)
# 将结果写入笔记的frontmatter或单独文件
print(f'Processed: {md_file.name}')注意:OpenAI有速率限制,建议加time.sleep(1)避免超限。
4. 将结果写回笔记
我选择将标签和摘要写入笔记的YAML frontmatter:
---
tags: [AI, 自动化]
summary: 用AI自动整理笔记的方法
---
脚本解析GPT返回的JSON,然后更新文件头部。
5. 建立关联
更高级的玩法:用GPT提取每篇笔记的关键实体,然后在Obsidian中自动添加[[双向链接]]。我写了一个小插件思路:
- 用spaCy或GPT提取实体(如"Python"、"机器学习")
- 在笔记中搜索这些实体,如果其他笔记标题包含,则添加链接
进阶技巧
- 批量处理速度:用异步请求或本地模型(如llama.cpp)可大幅提速
- 隐私优先:敏感笔记用本地模型,比如Ollama+Llama3
- 定期运行:设置cron job每周自动跑一次
注意事项
- API费用:每篇笔记约0.01元,1000篇也就10块钱,划算
- 不要一次性处理太多,分批次避免报错
- 建议先在小范围测试,比如一个子文件夹
总结
AI智能体不是替代你思考,而是帮你把散落的知识点串起来。现在我的Obsidian笔记库每天都自动更新标签和摘要,回顾时直接搜索标签或关键词,效率提升至少5倍。你也试试?
