Skip to content

Commit e0de423

Browse files
authored
Rename SentenceWindowRetrieval to SentenceWindowRetriever
1 parent 3fed136 commit e0de423

File tree

5 files changed

+34
-30
lines changed

5 files changed

+34
-30
lines changed

docs/pydoc/config/retrievers_api.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ loaders:
66
"in_memory/bm25_retriever",
77
"in_memory/embedding_retriever",
88
"filter_retriever",
9-
"sentence_window_retrieval",
9+
"sentence_window_retriever",
1010
]
1111
ignore_when_discovered: ["__init__"]
1212
processors:

haystack/components/retrievers/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
from haystack.components.retrievers.filter_retriever import FilterRetriever
66
from haystack.components.retrievers.in_memory.bm25_retriever import InMemoryBM25Retriever
77
from haystack.components.retrievers.in_memory.embedding_retriever import InMemoryEmbeddingRetriever
8-
from haystack.components.retrievers.sentence_window_retrieval import SentenceWindowRetrieval
8+
from haystack.components.retrievers.sentence_window_retriever import SentenceWindowRetriever
99

10-
__all__ = ["FilterRetriever", "InMemoryEmbeddingRetriever", "InMemoryBM25Retriever", "SentenceWindowRetrieval"]
10+
__all__ = ["FilterRetriever", "InMemoryEmbeddingRetriever", "InMemoryBM25Retriever", "SentenceWindowRetriever"]

haystack/components/retrievers/sentence_window_retrieval.py renamed to haystack/components/retrievers/sentence_window_retriever.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111

1212
@component
13-
class SentenceWindowRetrieval:
13+
class SentenceWindowRetriever:
1414
"""
1515
A component that retrieves surrounding documents of a given document from the document store.
1616
@@ -24,7 +24,7 @@ class SentenceWindowRetrieval:
2424
```python
2525
from haystack import Document, Pipeline
2626
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
27-
from haystack.components.retrievers import SentenceWindowRetrieval
27+
from haystack.components.retrievers import SentenceWindowRetriever
2828
from haystack.components.preprocessors import DocumentSplitter
2929
from haystack.document_stores.in_memory import InMemoryDocumentStore
3030
@@ -41,7 +41,7 @@ class SentenceWindowRetrieval:
4141
4242
rag = Pipeline()
4343
rag.add_component("bm25_retriever", InMemoryBM25Retriever(doc_store, top_k=1))
44-
rag.add_component("sentence_window_retriever", SentenceWindowRetrieval(document_store=doc_store, window_size=2))
44+
rag.add_component("sentence_window_retriever", SentenceWindowRetriever(document_store=doc_store, window_size=2))
4545
rag.connect("bm25_retriever", "sentence_window_retriever")
4646
4747
rag.run({'bm25_retriever': {"query":"third"}})
@@ -54,7 +54,7 @@ class SentenceWindowRetrieval:
5454

5555
def __init__(self, document_store: DocumentStore, window_size: int = 3):
5656
"""
57-
Creates a new SentenceWindowRetrieval component.
57+
Creates a new SentenceWindowRetriever component.
5858
5959
:param document_store: The document store to use for retrieving the surrounding documents.
6060
:param window_size: The number of surrounding documents to retrieve.
@@ -103,7 +103,7 @@ def to_dict(self) -> Dict[str, Any]:
103103
return default_to_dict(self, document_store=docstore, window_size=self.window_size)
104104

105105
@classmethod
106-
def from_dict(cls, data: Dict[str, Any]) -> "SentenceWindowRetrieval":
106+
def from_dict(cls, data: Dict[str, Any]) -> "SentenceWindowRetriever":
107107
"""
108108
Deserializes the component from a dictionary.
109109
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
upgrade:
3+
- |
4+
`SentenceWindowRetrieval` component has been renamed to `SenetenceWindowRetriever`.

test/components/retrievers/test_sentence_window_retriever.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@
22

33
from haystack import Document, DeserializationError, Pipeline
44
from haystack.components.retrievers import InMemoryBM25Retriever
5-
from haystack.components.retrievers.sentence_window_retrieval import SentenceWindowRetrieval
5+
from haystack.components.retrievers.sentence_window_retriever import SentenceWindowRetriever
66
from haystack.document_stores.in_memory import InMemoryDocumentStore
77
from haystack.components.preprocessors import DocumentSplitter
88

99

10-
class TestSentenceWindowRetrieval:
10+
class TestSentenceWindowRetriever:
1111
def test_init_default(self):
12-
retrieval = SentenceWindowRetrieval(InMemoryDocumentStore())
13-
assert retrieval.window_size == 3
12+
retriever = SentenceWindowRetriever(InMemoryDocumentStore())
13+
assert retriever.window_size == 3
1414

1515
def test_init_with_parameters(self):
16-
retrieval = SentenceWindowRetrieval(InMemoryDocumentStore(), window_size=5)
17-
assert retrieval.window_size == 5
16+
retriever = SentenceWindowRetriever(InMemoryDocumentStore(), window_size=5)
17+
assert retriever.window_size == 5
1818

1919
def test_init_with_invalid_window_size_parameter(self):
2020
with pytest.raises(ValueError):
21-
SentenceWindowRetrieval(InMemoryDocumentStore(), window_size=-2)
21+
SentenceWindowRetriever(InMemoryDocumentStore(), window_size=-2)
2222

2323
def test_merge_documents(self):
2424
docs = [
@@ -50,15 +50,15 @@ def test_merge_documents(self):
5050
"_split_overlap": [{"doc_id": "doc_1", "range": (23, 52)}],
5151
},
5252
]
53-
merged_text = SentenceWindowRetrieval.merge_documents_text([Document.from_dict(doc) for doc in docs])
53+
merged_text = SentenceWindowRetriever.merge_documents_text([Document.from_dict(doc) for doc in docs])
5454
expected = "This is a text with some words. There is a second sentence. And there is also a third sentence"
5555
assert merged_text == expected
5656

5757
def test_to_dict(self):
58-
window_retrieval = SentenceWindowRetrieval(InMemoryDocumentStore())
59-
data = window_retrieval.to_dict()
58+
window_retriever = SentenceWindowRetriever(InMemoryDocumentStore())
59+
data = window_retriever.to_dict()
6060

61-
assert data["type"] == "haystack.components.retrievers.sentence_window_retrieval.SentenceWindowRetrieval"
61+
assert data["type"] == "haystack.components.retrievers.sentence_window_retriever.SentenceWindowRetriever"
6262
assert data["init_parameters"]["window_size"] == 3
6363
assert (
6464
data["init_parameters"]["document_store"]["type"]
@@ -67,7 +67,7 @@ def test_to_dict(self):
6767

6868
def test_from_dict(self):
6969
data = {
70-
"type": "haystack.components.retrievers.sentence_window_retrieval.SentenceWindowRetrieval",
70+
"type": "haystack.components.retrievers.sentence_window_retriever.SentenceWindowRetriever",
7171
"init_parameters": {
7272
"document_store": {
7373
"type": "haystack.document_stores.in_memory.document_store.InMemoryDocumentStore",
@@ -76,35 +76,35 @@ def test_from_dict(self):
7676
"window_size": 5,
7777
},
7878
}
79-
component = SentenceWindowRetrieval.from_dict(data)
79+
component = SentenceWindowRetriever.from_dict(data)
8080
assert isinstance(component.document_store, InMemoryDocumentStore)
8181
assert component.window_size == 5
8282

8383
def test_from_dict_without_docstore(self):
84-
data = {"type": "SentenceWindowRetrieval", "init_parameters": {}}
84+
data = {"type": "SentenceWindowRetriever", "init_parameters": {}}
8585
with pytest.raises(DeserializationError, match="Missing 'document_store' in serialization data"):
86-
SentenceWindowRetrieval.from_dict(data)
86+
SentenceWindowRetriever.from_dict(data)
8787

8888
def test_from_dict_without_docstore_type(self):
89-
data = {"type": "SentenceWindowRetrieval", "init_parameters": {"document_store": {"init_parameters": {}}}}
89+
data = {"type": "SentenceWindowRetriever", "init_parameters": {"document_store": {"init_parameters": {}}}}
9090
with pytest.raises(DeserializationError, match="Missing 'type' in document store's serialization data"):
91-
SentenceWindowRetrieval.from_dict(data)
91+
SentenceWindowRetriever.from_dict(data)
9292

9393
def test_from_dict_non_existing_docstore(self):
9494
data = {
95-
"type": "SentenceWindowRetrieval",
95+
"type": "SentenceWindowRetriever",
9696
"init_parameters": {"document_store": {"type": "Nonexisting.Docstore", "init_parameters": {}}},
9797
}
9898
with pytest.raises(DeserializationError):
99-
SentenceWindowRetrieval.from_dict(data)
99+
SentenceWindowRetriever.from_dict(data)
100100

101101
def test_document_without_split_id(self):
102102
docs = [
103103
Document(content="This is a text with some words. There is a ", meta={"id": "doc_0"}),
104104
Document(content="some words. There is a second sentence. And there is ", meta={"id": "doc_1"}),
105105
]
106106
with pytest.raises(ValueError):
107-
retriever = SentenceWindowRetrieval(document_store=InMemoryDocumentStore(), window_size=3)
107+
retriever = SentenceWindowRetriever(document_store=InMemoryDocumentStore(), window_size=3)
108108
retriever.run(retrieved_documents=docs)
109109

110110
def test_document_without_source_id(self):
@@ -115,7 +115,7 @@ def test_document_without_source_id(self):
115115
),
116116
]
117117
with pytest.raises(ValueError):
118-
retriever = SentenceWindowRetrieval(document_store=InMemoryDocumentStore(), window_size=3)
118+
retriever = SentenceWindowRetriever(document_store=InMemoryDocumentStore(), window_size=3)
119119
retriever.run(retrieved_documents=docs)
120120

121121
@pytest.mark.integration
@@ -132,7 +132,7 @@ def test_run_with_pipeline(self):
132132

133133
rag = Pipeline()
134134
rag.add_component("bm25_retriever", InMemoryBM25Retriever(doc_store, top_k=1))
135-
rag.add_component("sentence_window_retriever", SentenceWindowRetrieval(document_store=doc_store, window_size=2))
135+
rag.add_component("sentence_window_retriever", SentenceWindowRetriever(document_store=doc_store, window_size=2))
136136
rag.connect("bm25_retriever", "sentence_window_retriever")
137137
result = rag.run({"bm25_retriever": {"query": "third"}})
138138

0 commit comments

Comments
 (0)