ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用claude-obsidian做vault内语义搜索?混合检索上手指南

如何用claude-obsidian做vault内语义搜索?混合检索上手指南 如何用claude-obsidian做vault内语义搜索混合检索上手指南【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidian如果你在用 Obsidian 管理笔记多半体会过这种无力感想找上次关于缓存策略的结论全文搜索却一无所获——因为关键词根本不在同一页上。claude-obsidian是一个本地优先的 AI 第二大脑把任意资料丢进 vaultClaude 会阅读、建立链接、归档成一张相互连接的 Markdown 知识图谱。它的wiki-retrieve扩展更进一步把BM25 词频检索 向量余弦重排组合成一条本地混合检索管道让你的 vault 真正支持语义搜索而且索引数据全部由你自己持有。为什么 vault 需要混合检索普通全文搜索依赖字面匹配。你搜降低延迟的方法就找不到写着优化响应时间的那页笔记。而纯向量语义搜索又容易丢精度专有名词、版本号、代码标识符恰恰是它最弱的部分。混合检索Hybrid Retrieval的思路是用两条通道互补通道擅长弱点BM25词频通道精确词、术语、编号、中日韩文本不理解同义改写向量余弦重排语义通道同义表达、概念相近的内容专有名词、需要本地模型claude-obsidian 的设计是BM25 负责先捞到向量重排负责再排准任何一环不可用时确定性地回退到纯 BM25 结果绝不混用两种分数也不假装找到了。混合检索三步管道上下文前缀 → BM25 → 余弦重排整条管道由 scripts/ 下的四个脚本组成检索技能定义见 skills/wiki-retrieve/SKILL.md切块 上下文前缀scripts/contextual-prefix.py 按段落把wiki/页面切成约 2000 字符的块并为每个块生成一两句上下文前缀说明这段文字出自哪页、讲什么主题——这是 Anthropic 2024 年 Contextual Retrieval 模式的本地实现。默认使用零成本的合成前缀只读取 frontmatter 和首段全程不出机器。构建 BM25 倒排索引scripts/bm25-index.py 纯 Python 标准库实现的 Okapi BM25k11.5, b0.75本地、确定性并对中日韩文本生成 1~3 字 n-gram没有分词器也能搜中文。查询编排 可选重排scripts/retrieve.py / scripts/rerank.py 先用 BM25 取候选集再用向量余弦相似度重排可选按页面去重后返回文件路径 片段供你或 Claude 阅读原文。所有派生缓存都存放在.vault-meta/切块、索引、向量缓存绝不改动你的正式笔记。下面是这样一个 vault 在 Obsidian 图谱视图中的样子每一条链接都是检索可以顺藤摸瓜的路径检索环境一键检查先确认能力再动手所有写入类操作都先预览、再确认。首次使用前建议先做能力自检bash bin/setup-retrieve.sh --vault vault python3 scripts/claude-obsidian.py contracts --vault $VAULT --verify --capability wiki-retrieve第二条命令会报告wiki-retrieve是否处于verified状态——只有验证通过wiki-query技能才会走预构建索引查询否则自动回退到wiki/hot.md → wiki/index.md → 纯文本搜索的保守路径并明确告知你用了哪个回退。安装细节见 docs/install-guide.md。构建索引两条命令搭好混合检索准备索引分两步全部离线python3 scripts/contextual-prefix.py --vault $VAULT --all --no-llm python3 scripts/bm25-index.py --vault $VAULT build--no-llm表示用合成前缀不发送任何内容到外部增量友好未变化的页面会按哈希跳过页面删除后全量扫描会清理多余记录前缀更新前会先使旧索引失效保证不会新旧混合出结果索引写入使用原子替换并与 vault 全局写锁共享忙时宁可不发布部分索引。想确认索引健康度可以用诊断命令python3 scripts/bm25-index.py --vault $VAULT stats执行第一次语义搜索retrieve 常用参数速查索引就绪后一条命令完成混合检索python3 scripts/retrieve.py --vault $VAULT 如何降低接口延迟 --top 5 --no-rerank --explain--explain会输出各阶段的诊断信息非常适合作为第一次运行。常用参数参数作用--top N返回条数1~1000深度研究可调大--no-rerank只走 BM25纯本地、最快--model nomic-embed-text指定更小的英文向量模型--explain附带逐阶段诊断输出是 JSON每个候选包含页面路径、块编号、BM25 分数、重排分数和 200 字符片段。注意两点边界查询长度上限 8000 个规范化字符索引缺失或损坏时会以退出码 10 给出稳定的重建命令调用方回退到标准查询路径绝不编造匹配结果。检索到的页面只是线索不是证据——这正对应 skills/wiki-query/SKILL.md 的工作方式先检索候选、再读原文、再引用出处作答。检索结果在 Canvas 中组织的知识地图长这样开启语义重排Ollama 向量模型配置想要真正的语义重排需要一个本地 Ollama 嵌入模型默认是多语言的nomic-embed-text-v2-moe约 958 MB不会自动下载。模型就绪后去掉--no-rerank即可python3 scripts/rerank.py --vault $VAULT 你的查询 --peek--peek会预览本次运行实际选择的策略余弦重排还是无操作回退。几个要点只连 localhost远程 Ollama 端点需要显式加--allow-remote-ollama因为页面正文会作为嵌入输入被 POST 出去向量有缓存按模型 输入方案 内容哈希精确缓存重复查询不重复计算失败即整体回退Ollama 不可达、模型未拉取、或任何一条候选嵌入失败整组结果直接回退为 BM25 原始排序不会把两种量纲的分数混在一起Nomic v2 输入上下文为 512 token超长内容会被截断嵌入但 BM25 仍对完整块打分——两条通道各司其职。隐私边界与降级行为本地优先意味着什么这套检索把隐私做成了默认值而不是开关合成前缀只用本地 frontmatter 和页面文本零外发想让 Claude API 或claudeCLI 生成更高质量的前缀必须显式加--allow-egress预览范围后才生效一切派生数据落在.vault-meta/删掉它等于一次干净重置正式笔记毫发无损检索输出不是证据本身调用方必须读取返回路径下的原文才能合成答案空索引就是诚实的无结果。相关行为都有对应的隔离测试不联网、不依赖模型tests/test_retrieve.py、tests/test_bm25_index.py。常见问题 FAQQ1没有 Ollama 还能做语义搜索吗可以。纯 BM25 通道是完整可用的本地方案只是语义程度有限——同义改写靠上下文前缀兜底。Q2支持中文吗支持。BM25 分词对汉字、假名、谚文等生成确定性 n-gram中文查询无需分词器。向量重排默认选用的 v2-moe 模型也是多语言的。Q3改了笔记后索引要重建吗增量处理。未变化的块按哈希跳过页面删除会在全量扫描时清理。若索引确实陈旧重建命令会由诊断信息直接给出。Q4vault 在哪选定的显式指定通过CLAUDE_OBSIDIAN_VAULT、最近的.claude-obsidian.json或唯一已初始化的祖先目录。选择有歧义时命令直接退出、不写任何东西。小结claude-obsidian 的混合检索用三条命令完成搭建上下文前缀切块、BM25 建索引、retrieve.py查询可选余弦重排。它的吸引力在于确定性与诚实的降级——本地默认、隐私显式、回退透明、结果可追溯到你自己的 Markdown 文件。把它和wiki-query技能配合使用vault 就从存了一堆笔记升级为随时问、答必引出处的语义搜索引擎。【免费下载链接】claude-obsidianSelf-organizing AI second brain for Obsidian Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathys LLM Wiki pattern.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-obsidian创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表