Skip to content

test(intake): 补充实体归并/chunk去重/检索退化测试缺口(2026-07-10 缺口分析)#20

Open
HeDaas-Code wants to merge 1 commit into
mainfrom
test/gap-coverage-2026-07-10
Open

test(intake): 补充实体归并/chunk去重/检索退化测试缺口(2026-07-10 缺口分析)#20
HeDaas-Code wants to merge 1 commit into
mainfrom
test/gap-coverage-2026-07-10

Conversation

@HeDaas-Code

Copy link
Copy Markdown
Owner

背景

自动化测试缺口分析工具 2026-07-10 运行结果。commit 972d563(fix(issues): 修复 16 个 GitHub issue P1+P2+P3)修改了 24 个生产文件(+2997/-544)但未同步任何测试,后续 0ec5dd8 仅补了 eval/pipeline/interview/oc_writer,核心 intake 逻辑仍无覆盖。

本 PR 补齐三处高优先级缺口(均为新增逻辑路径、零测试覆盖):

文件 测试数 覆盖模块 对应 issue
tests/test_chunker_gaps.py 8 chunker.dedup_chunks/_cosine_sim/_sha256_hex #18.a
tests/test_entity_resolver_gaps.py 13 entity_resolver 字符串相似度算法 + resolve_entities 三重信号融合 #17
tests/test_index_store_gaps.py 7 search HashEmbeddings→SQLite LIKE 退化 + merge_characters #12 / #17

验证

pytest: 78 passed(原有 50 + 新增 28)
smoke_test: 11/11 PASSED
新测试 3 次重跑:28 passed ×3(确定性,无不稳定)

所有测试确定性、隔离(tempfile 临时目录)、离线(HashEmbeddings + SQLite,无 LLM/Chroma 依赖),遵循项目现有 pytest test_* 风格。

为何降低回归风险

  • 实体归并正确性levenshtein/jaro/jaro_winkler 是归并判定的基础算法,实现错误会导致同一人物被错误合并或遗漏合并——直接污染人格蒸馏语料。
  • 去重降级链路dedup_chunks 三条路径(精确/真嵌入/失败降级)锁定了 NER 前去重的行为契约,防止重复 chunk 浪费 LLM 调用或误删。
  • 离线检索可用性search 的 LIKE 退化是离线/单测场景的兜底,失效会返回空或随机结果,掩盖真实检索缺陷。
  • 合并原子操作merge_characters 边界与别名传播保证实体归并的数据完整性。

补齐 commit 972d563(修复 16 个 GitHub issue)中新增但无测试覆盖的逻辑:

- chunker.dedup_chunks/_cosine_sim/_sha256_hex(Issue #18.a):
  精确匹配(None/HashEmbeddings) / 真嵌入阈值 / embedder 失败降级 三条路径
- entity_resolver(Issue #17,新文件):levenshtein/jaro/jaro_winkler/
  strings_similar 纯算法 + resolve_entities 三重信号融合(≥2合并/1待确认/0跳过)
- index_store.search HashEmbeddings→SQLite LIKE 退化(Issue #12)+
  merge_characters 边界与别名传播

全部确定性、离线(HashEmbeddings + SQLite 临时目录)、无 LLM 依赖。
验证:新增 28 测试 + 原有 50 = 78 passed,smoke 11/11,3 次重跑无不稳定。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant