返回首页
为什么我做个人 AI 知识库彻底放弃了向量数据库?
市面上 99% 的 AI 知识库教程,第一句就是教大家安装 Docker、启动向量数据库(Chroma / Milvus / Qdrant)、然后跑切片(Chunking)做 Embedding。
如果你跟我一样,曾经兴致勃勃折腾过 Dify、FastGPT、LangChain,但最后却发现查出来的东西总在“抽风”,那你应该会对这种痛苦深有体会。
“你想装个画框,不会先去炼铁造一把锤子。对于个人知识库,最先进的技术往往就是最朴素的文件。”
一、 向量库在个人场景下的三大「水土不服」
向量数据库最初是为了企业级海量非结构化数据检索而生的。但在个人桌面级知识库场景中,它带来了巨大的认知负担与不可解的黑盒:
- 风马牛不相及的切片截断:500 字一段切出来的知识碎片,彻底丧失了上下文与起承转合。检索出来的结果就像撕碎的书页,根本无法指导深度思考。
- 不可解释的玄学相似度:向量相似度算出来是
0.78还是0.82?这个数字到底代表“高度相关”还是“瞎扯淡”?普通人根本无从验证与调试。 - 沉重的运维负担与迁移成本:本地跑一堆服务,换一台电脑或者系统崩了,整个数据库备份还原极其繁琐。
二、 核心破局点:语义在先,计算在后
在我的 fuxi 模式 AI 本地知识库系统中,我彻底摒弃了向量库,采用了一套完全反常识的解法:
语义提炼在先(由大模型提炼打标签),规则算力在后(Python 计算重叠度)。
效果远比纯靠向量相似度更精准、更透明,也更经得起时间推移:
- 标签不仅是关键词,而是“高阶语义压缩包”:每丢入一篇文章,让大语言模型先以我的立场提炼出 3-5 个具象标签与主观观点。
- 纯 Markdown + Git 是能陪伴你十年的载体:没有任何二进制专有数据库格式,所有笔记随时可以用 VS Code、Obsidian 查看与 diff。
- 一行极简公式搞定关联度:通过 Python 脚本计算笔记之间的标签重叠度与关键词匹配,判定条件清晰透明(例如
公共标签 × 2 + 标题词 × 1 >= 4),完全可解释。
# 朴素但极其精准的关联度规则(fuxi 架构核心逻辑之一)
def calculate_relevance(note_a, note_b):
common_tags = set(note_a.tags) & set(note_b.tags)
common_keywords = set(note_a.keywords) & set(note_b.keywords)
score = len(common_tags) * 2 + len(common_keywords) * 1
return score >= 4 # 达标则双向建立 frontmatter 关联
三、 从「检索」到「编译」的升维
传统 RAG 知识库的核心是检索(Search)——你问它一句,它临时抓取几段切片凑成答案。你下次再问,它重新凑一次。
但创作者和思考者真正需要的是编译(Compile):
当讨论同一主题的素材积累到一定程度时,AI 会回头将多篇零散笔记综合提炼成一份结构化的《主题结论页》(Topics)。新输入一条资料,AI 自动往回织(Back-weaving)并高亮标注新旧观点的冲突与演进。
这样一来,知识库不再是一个冷冰冰的问答工具,而是变成了你的“思考协作者”,在素材成熟时甚至能反向派发写作选题。
四、 写在最后
别为了上技术而上技术,不要被工具绑架。
在 AI 能力已经极大充沛的今天,我们要做的恰恰是做减法:把注意力放回思考、输入与创作本身。最经得起考验的系统,往往构建在最简洁朴素的基石之上。