个人知识服务
本地运行的私有知识库问答:混合检索、流式问答,回答都带可回溯的来源。
- 资料快照与解析
- 关键词索引 + 语义索引
- 混合召回
- 证据窗口
- 带引用的流式回答
为什么做
我的笔记分散在几个库里,问一个问题常常要翻好几处;这些资料又是私人的,不想交给在线服务。所以做了一个在本机运行的知识服务:资料留在本机,回答必须带着能回到原文的引用。
方案
- 两路召回:SQLite FTS5 负责精确术语,本地 384 维向量模型加 Chroma 负责同义表达,两路结果用 RRF 融合。
- 证据窗口:按 token 预算保留完整的证据片段,回答里的引用编号能定位回原文位置。
- 来源变更即失效:原件被修改、删除或无法读取时,旧版本和相关引用立即失效,历史回答会标出失效,不会悄悄回退到旧版本。
- 本地优先:服务只绑定本机地址,模型外发和联网采集默认关闭;另有个人笔记、备份导出与恢复、只读 MCP,以及 Windows EXE 打包。
我负责的工作
把资料解析、检索、回答与引用拆成可验证的链路;为来源变更和本地权限设计明确行为;用冻结题集记录召回效果,同时标出尚未完成的验收。
怎么验证的
- 在旧 wiki 基线上冻结了 40 道题:30 道有答案(精确术语、同义表达和跨文档),5 道无答案,5 道越权。10 道用于调参,30 道留作验收,只测一次。
- 结果:保留集 20 个正例中,19 个在前 5 个片段里至少命中一篇预期文档,17 个找齐全部预期文档;越权结果为 0。
- 这组数字的边界:它是词法检索基线,Hit@5 只表示前 5 个片段里有预期文档,不等于答案准确率;基于原始资料的新题集还没有冻结。
- 权限边界、版本失效和备份恢复有回归测试覆盖。
现在做到哪
- 已经可用:关键词检索、混合召回、流式多轮问答、来源引用与失效提示、个人笔记、备份导出与恢复。
- 还没完成:语义链路的端到端验收、图片 OCR 自动入库、真实客户端的 MCP 联调、在干净电脑上的安装验收。
- 分发与许可:采用 PolyForm Noncommercial 1.0.0,源码保持私有,尚无公开下载 Release。基础便携包用于内部验收,不包含本地模型;语义检索与生成需依赖、模型就绪。
- 公网入口是独立的匿名只读演示,资料尚未批准时检索保持关闭,不开放资料上传或对话生成。它不等同于本机完整程序。
继续了解
检索链路、失败定位与合成排名示例见RAG 混合检索实践;开发和验收方式见测试工程师转 AI 应用开发。公开说明与演示状态提供当前分发和演示边界。