开发日记 · 2026-09-24

混合检索(Hybrid RAG)实践:当语义向量遇上知识图谱实体

单纯依靠语义向量容易忽略精确的实体定义,单纯依靠关键词则丧失语意发散能力。本文记录 Accrue Notes 如何在移动端实现向量与图拓扑的混合打分,以及为何必须将 AI 思考过程完整白盒化。

结论先说

黑盒 Chatbot 是个人深度思考的天敌。在知识对话中,我们拒绝任何“假装知道”的生成式幻觉。Accrue Notes 采用自研的 Hybrid RAG(语义向量 + 实体图谱拓扑)混合检索算法,并将 AI 思考过程(Thinking Process)与源笔记引用卡片(Ref Quotes)完全暴露给用户,让每次推演清晰可溯源。

传统单一检索的死穴

许多所谓的“AI 笔记”只是在文本上跑一次通用的 Vector Embedding,然后塞进 LLM 的上下文窗口:

  1. 实体丢失(Entity Blindness):比如笔记中记录了 [[奥卡姆剃刀]] 和 [[第一性原理]] 的具体派生关系,向量检索在计算余弦相似度时,往往召回了包含相似修饰词的无关段落,而漏掉了真正核心的概念定义;
  2. 缺乏逻辑推演链:用户问一个跨笔记的深度战略问题,普通模型直接吐出一段似是而非的空话,用户根本不知道它依据了哪几篇笔记、经过了怎样的推演,一旦出现幻觉危害极大。

我们的解决方案:双引擎混合检索

[用户提问 / 深度研报主题]
       │
       ├──► 向量引擎: 本地 Embeddings 语义余弦相似度召回 (Top-K)
       │
       └──► 图谱引擎: 提取识别到的 [[实体]],沿双链拓扑抓取一阶/二阶关联节点
               │
               ▼
       [混合重排与上下文加权融合 (Reranking & Context Filter)]
               │
               ▼
       [白盒 System Prompt: 强制输出 <thinking> 推理链与 [Ref] 原文引用]
               │
               ▼
       [流式呈现: 实时思考胶囊折叠卡片 + 确凿引文直达]

为什么要坚持白盒思考链?

在最新版本中,我们将最外层的知识问答全面升级为 Thinking 推理过程透明化。当大模型在分析你的知识库时,它的每一个推导步骤—— “首先从笔记《反脆弱笔记》中提取塔勒布对非对称性的定义…” “接着对比笔记《芒格逆向思维》中的矛盾论点…” 都会实时展现在前端可收起的 [🧠 已深度思考] 胶囊卡片中。思考完毕后自动收拢,用户既能获得干净精炼的最终结论,又能随时展开复盘底层的逻辑全景。

← 上一篇 · 下一篇 →

← 全部开发日记