37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
"""检索面白名单:第 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)
|