Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions src/nexusrag/retrieval/dense.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,3 @@ def retrieve(

return [RetrievalResult(chunk=r.chunk, score=r.score, source="dense") for r in results]

def retrieve_with_threshold(
self,
query: str,
top_k: int = 5,
min_score: float = 0.3,
) -> list[RetrievalResult]:
results = self.retrieve(query, top_k)
return [r for r in results if r.score >= min_score]
3 changes: 1 addition & 2 deletions src/nexusrag/retrieval/hybrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,7 @@ def retrieve_with_dense_top(
"""Fused results plus the top dense cosine score, from one dense pass."""
return self._run(query, top_k, depth)

def retrieve_dense_only(self, query: str, top_k: int = 10) -> list[RetrievalResult]:
return self.dense.retrieve(query, top_k)



class AdaptiveHybridRetriever(HybridRetriever):
Expand Down
9 changes: 1 addition & 8 deletions tests/unit/test_retrieval.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,6 @@ def test_retrieve_passes_through_store(self, retriever):
assert [r.chunk.id for r in results] == ["chunk2", "chunk1"]
assert all(r.source == "dense" for r in results)

def test_threshold_filters_low_scores(self, retriever):
results = retriever.retrieve_with_threshold("q", top_k=5, min_score=0.8)
assert len(results) == 1 and results[0].score >= 0.8


class TestHybridRetriever:
@pytest.fixture
Expand Down Expand Up @@ -122,10 +118,7 @@ def test_negative_weight_rejected(self, dense, sparse):
with pytest.raises(ValueError):
HybridRetriever(dense, sparse, dense_weight=-0.1, sparse_weight=0.3)

def test_single_retriever_paths_skip_fusion(self, dense, sparse):
hybrid = HybridRetriever(dense, sparse)
assert all(r.source == "dense" for r in hybrid.retrieve_dense_only("q", 3))
sparse.retrieve.assert_not_called()


def test_empty_results(self, dense, sparse):
dense.retrieve.return_value = []
Expand Down