34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from deerflow.integrations.weknora.local_index.ranking import (
|
|
title_boosted_rrf_score,
|
|
title_match_strength,
|
|
)
|
|
|
|
|
|
def test_exact_chinese_title_is_strongest_match() -> None:
|
|
exact = title_match_strength("海湖庄园", "海湖庄园")
|
|
broad = title_match_strength("海湖庄园", "特朗普")
|
|
assert exact == 1.0
|
|
assert broad == 0.0
|
|
|
|
|
|
def test_question_wrappers_do_not_hide_title_phrase() -> None:
|
|
assert title_match_strength("请介绍一下海湖庄园的历史", "海湖庄园") == 1.0
|
|
|
|
|
|
def test_title_inside_longer_natural_language_question_is_retained() -> None:
|
|
assert title_match_strength("请查找海湖庄园最新消息", "海湖庄园") > 0.7
|
|
|
|
|
|
def test_possessive_character_inside_real_title_is_not_deleted() -> None:
|
|
assert title_match_strength("党的二十大", "党的二十大") == 1.0
|
|
|
|
|
|
def test_alias_match_is_discounted_but_still_useful() -> None:
|
|
assert 0 < title_match_strength("Mar-a-Lago", "美国总统官邸", ["Mar-a-Lago"]) < 1
|
|
|
|
|
|
def test_rrf_title_boost_is_weighted_and_can_be_disabled() -> None:
|
|
base = 1 / 62
|
|
assert title_boosted_rrf_score(base, 1.0, weight=0.25) == base * 1.25
|
|
assert title_boosted_rrf_score(base, 1.0, enabled=False, weight=1.0) == base
|