项目 / Projects
本地个人知识库:Obsidian + Ollama 的可复用知识系统
以 Obsidian 为前端、本地 Ollama(qwen3.5:9b)为推理、Python 构建脚本为索引的本地优先知识库。采用 PARA + LYT 组织、三级索引与双轴标签,数据不出本机。
项目背景
个人知识库解决的是「学过的东西留不住、要用时找不到」的问题。它的设计原则是 本地优先、隐私可控、可复用:所有资料与模型推理都在本机完成,不依赖云端账号,也不把敏感笔记上传到第三方。技术上以 Obsidian 为知识前端,以本地 Ollama 提供轻量推理,以 Python 脚本承担索引与抽取,形成一套可长期维护的「第二大脑」。
技术架构
- 前端 / 容器:Obsidian Vault 作为笔记容器,支持双链、关系图与本地搜索。
- 推理层:Ollama 运行 qwen3.5:9b,承担摘要、抽取、问答等本地任务。
- 索引层:Python 构建脚本扫描 Vault,解析 PDF(PyMuPDF)与 Markdown,生成三级索引与标签统计。
- 组织层:PARA(项目 / 领域 / 资源 / 归档)+ LYT(链接主题)组合,配合双轴标签。
核心设计
- PARA + LYT 组织:用 PARA 决定「笔记属于哪个行动上下文」,用 LYT 的主题页把相关笔记聚合成可导航的结构,避免知识孤岛。
- 三级索引:MOC(地图页)→ 主题页 → 原子笔记。MOC 提供全局概览,主题页承载一类知识的入口,原子笔记记录最小可复用事实。
- 双轴标签:每条笔记同时打「主题轴」(如 Transformer、医学影像)和「项目轴」(如智医助手),使同一篇笔记能在不同项目里被检索到。
- Python 构建脚本:在 Git 提交前自动跑一遍,重建索引、校验断链、统计标签分布,把维护成本从手工降到自动。
关键技术决策
- 数据不出本机:模型与存储都在本地,只有主动导出时才离开机器,符合隐私红线。
- 确定性任务交给脚本:抽取标题、生成索引这类任务用 Python 而非 LLM,稳定且可复现。
- Markdown 可移植:笔记是纯文本,未来可无缝导入任意静态站点生成器或知识工具,不被厂商锁定。
与算法 / AI 应用开发的关联
知识库是「把单次实验沉淀为可复用工作流」的地基。它让我在智医助手、论文阅读、Transformer 学习等场景里能快速调取证据,也直接支撑了这个博客的「AI 实践」内容生产——很多文章与项目笔记都来自这里的原子笔记。
反思与后续
- 计划引入本地向量检索增强跨笔记语义搜索,降低对关键词的依赖。
- 索引脚本可支持增量更新,避免全量重建。
- 探索把 Vault 的一部分自动发布为博客文章,形成「笔记 → 发布」的半自动流水线。