Skip to content

v1.31.0 — 跨语言检索、复苏雷达、词表收敛、判分器加固

Choose a tag to compare

@Spc-jgs Spc-jgs released this 11 Aug 04:06
· 126 commits to master since this release
15d1cdd

跨语言查询扩展(#73

中文提问现在能命中英文笔记。v1.30 的语义改写只命中 3/8,而其中 5 条失败返回的是零结果不是错结果 —— 语料是英文、查询是中文,分词器产出拉丁词元和 CJK bigram,两套字母表永远碰不到,BM25 没有可排的东西。

一份 83 个概念的双语词表匹配原始查询,把另一种语言的说法按 0.45 权重一起检索。仍是词法检索:不算向量、不跑模型、不建索引,mode 保持 lexical

Semantic(门禁 ≥5/8) 3/8 · MRR 0.3125 8/8 · MRR 0.9375
Semantic holdout 4/8 · MRR 0.5 8/8 · MRR 1.0
Exact / Alias / Filtered 全 1.0 全 1.0
No-answer 误报 0 0
P95 延迟 7.58 ms 7.20 ms

扩展是假设不是证据,所以全程上报:expansion 块、每条结果的 expansion signal、--no-expand 复现扩展前行为。中文「代理」同时是 agent 和 proxy,两种读法都展开都报告。

Vault 可用 .obsidian-kb/retrieval-lexicon.json 补自己的词汇。文件坏了用 invalid-lexicon 拒绝,不悄悄降级。

0.45 这个权重没有被评测证明 —— 权重从 0.25 扫到 1.0 召回完全不动,16 篇的合成语料区分不出来。报告里写明了。

项目复苏雷达

新的只读入口 review-projects:主题搜索要求用户先想起某个项目,复苏队列不要求。只扫 project-note,受阻 / 缺活动日期 / 超过失温阈值的进队列,给出活动日期、失温天数、可见未完成 checkbox 数、已有的第一步和机器稳定的入选原因。不写状态、不写 review 标记、不编综合价值分数。

完成态在中英文下都识别(completed / 已完成 / 已归档 / 已取消),认不出来的状态一律当作进行中。

聚类词表收敛(#68 #69

「哪些词不算主题」原来在代码里有好几份互相不一致的答案:

  • subject_clusters 改读 Vault 自己的 Templates/,和 tag_vocabulary 同源。旧的硬编码表把 java 当通用词(真实主题),又留着模板早已改名的 person
  • 补齐「一篇东西」这类通用标题词:文章 笔记 记录 等 12 个。
  • 来源站点名不硬编码 —— 对做剪藏的 Vault 是噪声,对写那个平台的人是正当主题。改由 Vault 用 .obsidian-kb/vault-vocabulary.json 自己声明。

Web Capture 判分器加固(#76

硬门禁原来在给措辞打分,不是给断言打分,三种无效回答能拿到 hard_failures: []

  • 完成状态靠散文正则猜 → 改成要求 OUTCOME: / BLOCKER: 结构块,解析不出来本身就是硬失败;
  • 停止理由「关键词出现过」就算数 → blocker 必须同时点名材料并断言它拿不到;点名后又说它无关是新的 dismissed-required-material
  • 禁用事实按原短语匹配(禁 CVSS 9.8,"9.8 on the CVSS scale" 零命中)→ 改成词集,全部词落在同一子句且未否定才算。

新增 --rescore-messages 离线重判。判分器 docstring 现在写明:机械规则证明不了笔记为真

升级

git pull && ./install.sh

不带 --force 不会碰你 Vault 里的 Templates/