AI 驱动的个人知识管理系统:收录链接、视频和 PDF,抓取内容后用 LLM 做结构化分析,写入 Obsidian,并把长期价值内容同步到 gbrain。
- 内容收录 — 通过
process.sh收录 URL 或本地 PDF,抓取、分析、分类并写入知识库- 普通网页、微信公众号等网页:Playwright 抓取正文
- YouTube、B站、抖音:优先提取字幕/转录;无转写时抽取关键帧并用视觉模型生成带时间证据的分析
- 本地 PDF 或 PDF URL:提取文本后分析
- Twitter/X、小红书等强反爬平台:目前走通用网页抓取,可能失败或需要人工补充内容
- 灵感管理 — 随手记录 idea,自动搜索知识库关联内容,评估可行性
- 知识关联 — 构建 idea ↔ 知识的双向链接
- Obsidian 集成 — 所有内容以 Markdown 写入 Obsidian Vault
当前支持视频关键帧视觉分析,但尚不支持把任意图片/截图作为独立收录类型。
用户 → 发送链接/灵感
↓
process.sh → 检测类型、收录数据库
↓
fetch-video.py / fetch-pdf.py / fetch-screenshot.js → 抓取内容
video_vision.py → 无字幕视频的关键帧批量视觉分析
↓
LLM 结构化分析:摘要 / 原文事实 / 模型推断 / 外部背景 / 待查证
↓
write-to-obsidian.py → 写入 Obsidian Vault
sync_to_gbrain.py → 筛选高价值条目并同步到 gbrain
idea.py → 创建灵感 / 分析关联
↓
Obsidian Vault (~/Documents/我的知识库/)
├── 稍后阅读/{技术,商业,设计,生活,新闻,视频,其他}/
├── 灵感/{待探索,进行中,已搁置}/
└── 关联图谱/
- yt-dlp — 视频/音频下载(YouTube/B站/抖音等 1800+ 平台)
- youtube-transcript-api — YouTube 字幕提取
- Whisper CLI — 视频无字幕时的本地语音转写 fallback
- ffmpeg — 视频截帧、音频处理
- Playwright — 网页截图抓取(微信公众号等)
- pypdf — PDF 文本提取;默认自动使用 Hermes venv 中可用的解释器
- SQLite — 文章数据库
- Obsidian — 知识库前端(本地 Markdown)
pip3 install yt-dlp youtube-transcript-api openai-whisper
brew install ffmpeg
npm install playwright默认优先级:
MY_KNOWLEDGE_BASE_LLM_COMMAND- MiniMax:
MY_KNOWLEDGE_BASE_LLM_PROVIDER=minimax或检测到 MiniMax key - OpenAI:检测到
OPENAI_API_KEY - 无可用 LLM 时回退到本地规则摘要
MiniMax 示例:
export MY_KNOWLEDGE_BASE_LLM_PROVIDER=minimax
export MINIMAX_CN_API_KEY="your_minimax_key_here"不要把真实 API key 写进 README、提交到 git,或放进公开日志。这里的 your_minimax_key_here 只是占位符。
常用环境变量:
export OBSIDIAN_VAULT_PATH="$HOME/Documents/我的知识库"
export MY_KNOWLEDGE_BASE_FORCE=1 # 已处理条目也重新抓取/分析
export MY_KNOWLEDGE_BASE_INBOX_ONLY=1 # 只收录,不立即处理
export MY_KNOWLEDGE_BASE_SYNC_GBRAIN=1 # 当前条目处理后尝试同步到 gbrain
export MY_KNOWLEDGE_BASE_KEEP_SCREENSHOTS=1 # 调试网页抓取时保留临时截图;默认会删除
export MY_KNOWLEDGE_BASE_LLM_TIMEOUT=120
export MY_KNOWLEDGE_BASE_LLM_MAX_OUTPUT_TOKENS=5000
export MY_KNOWLEDGE_BASE_VIDEO_FETCH_TIMEOUT=1800
export MY_KNOWLEDGE_BASE_WHISPER_MODEL=tiny # 视频无字幕时的本地转写模型;可改为 base 提高质量
export MY_KNOWLEDGE_BASE_WHISPER_TIMEOUT=900
export MY_KNOWLEDGE_BASE_DOUYIN_MIN_CHAPTER_SUMMARY_CHARS=300
export MY_KNOWLEDGE_BASE_PDF_PYTHON="$HOME/.hermes/hermes-agent/venv/bin/python3"视频视觉分析复用 video-learning 的 provider 约定,默认自动检测 API key:
# OpenAI
export MY_KNOWLEDGE_BASE_VISION_PROVIDER=openai
export MY_KNOWLEDGE_BASE_VISION_MODEL=gpt-4.1-mini
export OPENAI_API_KEY="your-key"
# 或 DashScope/Qwen
export MY_KNOWLEDGE_BASE_VISION_PROVIDER=dashscope
export MY_KNOWLEDGE_BASE_VISION_MODEL=qwen3-vl-plus
export DASHSCOPE_API_KEY="your-key"
export MY_KNOWLEDGE_BASE_VISION_FRAME_LIMIT=12
export MY_KNOWLEDGE_BASE_VISION_BATCH_SIZE=8没有视觉 provider 时,系统会明确记录视觉分析不可用,只使用现有描述兜底,不会伪造画面内容。
改名迁移期,代码会把历史环境变量作为 fallback 读取;新配置只使用 MY_KNOWLEDGE_BASE_*。
可选 MiniMax 变量:
export MY_KNOWLEDGE_BASE_MINIMAX_MODEL="MiniMax-M3"
export MY_KNOWLEDGE_BASE_MINIMAX_BASE_URL="https://api.minimaxi.com/v1"
export MY_KNOWLEDGE_BASE_MINIMAX_API_KEY_ENV="MINIMAX_CN_API_KEY"process.sh 是正常收录的唯一入口,会自动完成入库、抓取、LLM 分析和 Obsidian 写入。不要在日常使用中绕过它手动更新 SQLite。
./process.sh "https://example.com/article"
./process.sh ~/Downloads/paper.pdf底层抓取/写入脚本只用于调试单个阶段,不作为常规入口。
早期版本可能已经在 articles.db 里有标题和摘要,但没有写出对应 Markdown。用修复脚本从 DB 补写缺失笔记;它不会重新抓取原链接,也不会重新调用 LLM。
python3 repair_obsidian.py --all-missing --dry-run
python3 repair_obsidian.py --all-missing
# 迁移旧笔记尾注里的历史项目名
python3 repair_obsidian.py --migrate-footer
# 默认只扫描 Obsidian/稍后阅读;确认需要全 vault 扫描时再加
python3 repair_obsidian.py --migrate-footer --all-vault# 预览将同步哪些条目
python3 sync_to_gbrain.py --dry-run
# 默认只同步 tech,business,design 中已有摘要且未同步的条目
python3 sync_to_gbrain.py
# 精确同步某一条 articles.id
python3 sync_to_gbrain.py --article-id 67
# 人工标记长期价值内容,只同步标记过的条目
python3 mark.py value 12 18 23
python3 sync_to_gbrain.py --only-marked --limit 10
# 重试失败条目,或指定分类
python3 sync_to_gbrain.py --retry-failed
python3 sync_to_gbrain.py --categories tech,business,design,newspython3 idea.py add --title "我的idea" --description "描述"
python3 idea.py list
python3 idea.py analyze --title "我的idea"灵感关联会优先调用 gbrain query 检索长期脑库;如果 gbrain 不可用或没有结果,会自动回退到 Obsidian 稍后阅读/ 目录的本地关键词搜索。
idea.py analyze 会生成结构化的可行性、置信度、支撑依据、知识缺口和下一步行动,并幂等写回灵感笔记。
MIT