私有知识库不求人:Obsidian接本地大模型

公司文档不敢传云端,SaaS 知识库年费年年涨,通用的对话模型又记不住你的笔记体系——三个痛点叠在一起,本地私有智能体就成了值得花一个下午搭的东西。这篇把部署、对接、代码、验证四段完整走一遍,坑都标出来。

智能体和对话模型的分界线

普通大模型是被动应答:问一句答一句,会话结束记忆归零。智能体是目标驱动:给它一个任务,它自己拆步骤、查资料、调工具、迭代交付。差距不在模型多聪明,在外围有没有给它配记忆和工具。

维度 对话模型 智能体
驱动方式 被动应答 目标驱动自主执行
记忆 单次会话 挂接知识库长期记忆
工具 无 读写文件、检索、生成文档
适用 问答、片段代码 调研、整理、自动化流水线

技术栈:三件套就够

Obsidian 管存储——纯 Markdown、双链、数据全在本地磁盘;DeepSeek 管理解——7B/14B 量化版消费级显卡能跑;Python 脚本管调度——百来行代码实现任务循环,单机场景没必要先上重型框架。

部署环节的四个真实坑

Ollama 安装本身没有难度,Windows 用 winget install Ollama.Ollama,macOS 用 brew install ollama。坑都在后面:

坑一:模型下载中断。 几 GB 的模型文件在网络抖动时经常断,ollama pull deepseek-r1:7b 重跑同一命令会续传,不用删缓存。

坑二:显存不够直接 OOM。 7B 模型 FP16 权重需要约 14GB 显存,8GB 卡跑不动。解法是拉量化版:ollama pull deepseek-r1:7b 默认就是 Q4 量化,显存需求压到 5GB 上下。14B 同理,Q4 量化后约 9GB。

坑三:局域网访问不通。 Ollama 默认只监听 127.0.0.1。想让同网段其他设备调用,Windows 要设环境变量 OLLAMA_HOST=0.0.0.0 并重启服务,防火墙再放行 11434 端口——漏了防火墙这步,表现为连接超时而不是拒绝,容易误判成模型没加载。

坑四:首次语义索引卡住。 Smart Connections 插件第一次扫描全库要做向量化,几千篇笔记可能要半小时,界面看着像假死。看 Obsidian 开发者控制台的日志确认在跑就行,别中途删插件重装。

部署是否成功用一条命令验证:

curl http://localhost:11434/api/chat -d "{\"model\":\"deepseek-r1:7b\",\"messages\":[{\"role\":\"user\",\"content\":\"回复OK\"}],\"stream\":false}"

返回 JSON 里有正常回复即通。

对接 Obsidian

插件装三个:Text Generator 负责把本地 API 接进编辑器,API 地址填 http://localhost:11434/v1,模型名与拉取的标签一致;Smart Connections 负责向量化与语义检索;Templater 负责按模板生成结构化文档。

调度代码的一个关键缺陷

网上流传最广的版本,工具函数长这样——检索全靠文件名匹配:

def search_knowledge(self, query):
    results = []
    for root, _, files in os.walk(VAULT):
        for f in files:
            if f.endswith(".md") and query.lower() in f.lower():
                results.append(os.path.join(root, f))
    return results[:5]

这段代码能跑,但和前面装的语义插件完全脱节:用户问「上次那个缓存穿透的记录」,文件名里没有「缓存穿透」四个字就什么都搜不到。检索这个词是语义问题,靠字符串包含解决不了。真实可用的做法是走 embedding:把全库笔记切块向量化存进本地库(Chroma 单机够用),检索时先向量召回再交给模型。语义插件已经把向量建好了,调度代码应该调它的索引数据,而不是自己另起炉灶做文件名匹配。

同理,「抛弃 LangChain」这个说法也别照单全收。单机三五个工具确实裸写更清爽;一旦工具上到两位数、需要重试策略、并发调用和状态持久化,框架省下的轮子就值回票价了。按任务复杂度选,不按流行度选。

验证效果的两把尺

吞吐基准:同一组五个提示词分别打 7B 和 14B,记录每秒输出 token 数。8GB 卡上 7B 量化版通常能到 20 tokens/s 以上,14B 掉到个位数——低于 5 的交互体验会让人放弃使用,这时候降档比等待明智。

检索质量:准备十个「只知道内容大概、不知道文件名」的问题,分别用文件名匹配和向量召回跑一遍,数命中率。这个对照做完,你对两种方案的差距会有直观判断,比看任何评测都实在。

收尾

这套方案的价值排序是:数据不出本机第一,零订阅费第二,能挂自己的笔记体系第三。至于自动化程度,先把检索和写入跑稳,再谈任务循环——底座不牢的智能体,只会用稳定的速度产出错误的结果。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?