本地 RAG 知识库 - 拒绝臃肿,200MB 撑起海量笔记检索
项目愿景:搭建一套完全本地化、隐私安全的 RAG(检索增强生成)系统。不依赖外部 API,无需庞大显存,Qdrant 仅需 200MB 内存,配合 n8n 工作流和 Ollama 本地模型,实现个人知识库的智能检索。
🏗️ 架构概览
整套系统将 Obsidian 笔记通过 n8n 自动化处理后存入 Qdrant 向量数据库,最后通过 AI Agent 进行检索回答。
1 | Obsidian ──▶ N8N ──▶ Qdrant |
数据流向:
- 数据源:宿主机上的 Markdown 笔记(Obsidian)
- **编排层 (n8n)**:读取文件 → 切片 → 调用本地模型向量化
- **模型层 (Ollama)**:提供 Embedding 能力
- **存储层 (Qdrant)**:存储向量数据并提供检索
🐳 环境部署
1. 部署 Qdrant 向量数据库
创建 docker-compose.yml:
1 | services: |
1 | # 创建网络并启动 |
访问 http://localhost:6333/dashboard 进入管理界面。
2. 配置 N8N 挂载目录
在 Docker Desktop → Settings → Resources → File Sharing 中添加笔记目录所在盘符,然后修改 N8N 配置:
1 | services: |
⚙️ 关键配置:向量维度
Collection 的维度必须与 Embedding 模型输出完全一致! 这是新手最容易踩坑的地方。
| 维度 | 对应模型 | 说明 |
|---|---|---|
| 768 | Qwen3-Embedding-8B, BGE | 中文文本推荐 ✅ |
| 1536 | OpenAI text-embedding-3-small | OpenAI 小模型 |
| 4096 | Qwen2.5:7b | 作为 Embedding 时 |
![]() |
创建 Collection
通过 HTTP Request 或 Dashboard 创建:
1 | PUT http://qdrant:6333/collections/obsidian_notes |
🔧 N8N 工作流搭建
读取文件配置
N8N 的 “Read File(s) From Disk” 节点不支持递归通配符,需要手动指定多层路径:
1 | /app/obsidian/*.md |
完整工作流
1 | [Manual Trigger] |
Qdrant Vector Store 节点配置:
- Operation: Insert Documents
- Qdrant URL:
http://qdrant:6333(容器内网络) - Collection:
obsidian_notes
🚨 踩坑实录:AI 为什么死活不查库?
这里分享一个真实的”翻车”经历。
问题现象:
工作流搭建完毕,数据库里也有数据,但问 AI Agent 具体笔记内容时,总是报错 Invalid configuration provided for the tool,或者直接胡编乱造。
排查过程:
检查了 Docker 网络、API Key、向量维度,看似都没问题。最后发现问题出在 Tool Description 这一栏。
原因:
因为偷懒,我在 Qdrant Tool 的描述栏里随手打了一串乱码。AI 是通过 Description 来理解工具用途的,乱码导致大模型根本不知道这个工具是干嘛的。
解决方法:
将 Description 修改为清晰的自然语言:
“Use this tool to search for related context from the user’s local knowledge base about Obsidian notes.”
修改后,Agent 瞬间跑通!
❓ 常见问题
向量维度不匹配

1 | Error: Vector dimension error: expected dim: 768, got 4096 |
解决:删除 Collection,重新创建,维度设为与 Embedding 模型输出一致。
读取不到文件
检查清单:
- Docker Desktop 是否添加了目录共享
- docker-compose 路径格式是否正确
- 容器是否重启
- 验证挂载:
docker exec n8n ls /app/obsidian
📦 资源下载

为了方便大家直接上手,我整理了完整的部署文件:
包含内容:
docker-compose.yml- Qdrant 部署配置(含详细注释)ollama/docker-compose.yml- Ollama + Open WebUI 部署配置
📈 项目亮点总结
- 极致轻量: Qdrant 仅需 200MB 内存,告别显存焦虑
- 完全本地: 不依赖外部 API,数据隐私有保障
- 自动化流程: n8n 工作流一键导入笔记
- 灵活扩展: 支持多种 Embedding 模型切换
🎯 这套方案最大的优势就是轻。希望这篇排错记录能帮到正在折腾本地知识库的你!