"""检索面白名单:第 4 集合(`乙-7`)**建了但不进默认检索面**。 这条断言守的是一个**实测结论**,不是审美偏好。2026-09-19 把 `fin_basic_collection` 加进默认检索面后复跑 46 条金标,`M-1` 出口准确率 100% → 91.3%: 通用常识文本与很多问题都"像",会把**次优分**抬到 0.69–0.79, 而 `MIN_GAP=0.07` 的"top1 领先不足"判据据此把本该直答的题推给证据约束生成。 要启用它,先做跨集合分数归一 / 重排,并复跑 `_eval_harness` 确认 `M-1` 仍是 100%。 """ from app.core.knowledge_contracts import ALLOWED_COLLECTIONS from app.service.knowledge_search_service import ( BASIC_COLLECTION, DEFAULT_COLLECTIONS, FALLBACK_COLLECTIONS, PRIMARY_COLLECTIONS, ) def test_basic_collection_is_allowlisted_and_built() -> None: # 集合本身是"已建好、已灌库"的:契约放行 + 有补位位次。 assert BASIC_COLLECTION == "fin_basic_collection" assert BASIC_COLLECTION in ALLOWED_COLLECTIONS assert FALLBACK_COLLECTIONS == (BASIC_COLLECTION,) def test_default_retrieval_surface_stays_the_three_primary_collections() -> None: assert PRIMARY_COLLECTIONS == ( "fin_faq_collection", "fin_product_collection", "fin_policy_collection", ) assert DEFAULT_COLLECTIONS == PRIMARY_COLLECTIONS # 回归红线:第 4 集合不得悄悄回到默认检索面。 assert BASIC_COLLECTION not in DEFAULT_COLLECTIONS def test_every_default_collection_is_allowlisted() -> None: assert set(DEFAULT_COLLECTIONS) <= set(ALLOWED_COLLECTIONS)