feat(evidence): evaluate retrieval with a small fixture
This commit is contained in:
@@ -475,6 +475,35 @@ def test_evidence_search_uses_filtered_dense_and_bm25_prefetches_with_default_rr
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("retrieval_mode, expected_query", [
|
||||
("dense", None),
|
||||
("bm25", {"text": "cardiomiopatia", "model": "qdrant/bm25", "options": {"language": "italian"}}),
|
||||
])
|
||||
def test_evidence_diagnostic_branch_searches_use_the_runtime_filter(retrieval_mode, expected_query):
|
||||
fake = FakeQdrantHttp()
|
||||
_ready_collection_with_bm25(fake)
|
||||
store = _store(fake)
|
||||
generation = "gen:" + "1" * 32
|
||||
|
||||
store.search(
|
||||
["evidence"], [0.2] * 1024, limit=10, kinds=["evidence"],
|
||||
query_text="cardiomiopatia", query_language="italian", retrieval_mode=retrieval_mode,
|
||||
metadata_filter={"workspace_id": "demo", "vector_generation": generation, "document_ids": ["doc:abc"]},
|
||||
)
|
||||
|
||||
query = next(call[2] for call in reversed(fake.calls) if call[1].endswith("/points/query"))
|
||||
assert query["limit"] == 10
|
||||
assert query["filter"]["must"][-2:] == [
|
||||
{"key": "vector_generation", "match": {"value": generation}},
|
||||
{"key": "document_id", "match": {"any": ["doc:abc"]}},
|
||||
]
|
||||
if retrieval_mode == "dense":
|
||||
assert query["vector"] == [0.2] * 1024
|
||||
else:
|
||||
assert query["query"] == expected_query
|
||||
assert query["using"] == "bm25"
|
||||
|
||||
|
||||
def test_search_filters_by_workspace_and_allowed_record_kinds():
|
||||
fake = FakeQdrantHttp()
|
||||
store = _store(fake)
|
||||
|
||||
Reference in New Issue
Block a user