fastembed-haystack 2.0.0__tar.gz → 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/CHANGELOG.md +7 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/PKG-INFO +1 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/examples/example.py +0 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/examples/ranker_example.py +0 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/examples/sparse_example.py +0 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/fastembed_document_embedder.py +0 -2
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/fastembed_sparse_document_embedder.py +0 -2
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/fastembed_sparse_text_embedder.py +0 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/fastembed_text_embedder.py +0 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/rankers/fastembed/ranker.py +2 -3
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_document_embedder.py +14 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_ranker.py +15 -2
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_sparse_document_embedder.py +13 -2
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_sparse_text_embedder.py +14 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_text_embedder.py +14 -1
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/.gitignore +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/LICENSE.txt +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/README.md +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/pydoc/config_docusaurus.yml +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/pyproject.toml +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/__init__.py +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/embedding_backend/__init__.py +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/fastembed/embedding_backend/fastembed_backend.py +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/embedders/py.typed +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/rankers/fastembed/__init__.py +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/src/haystack_integrations/components/rankers/py.typed +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/__init__.py +0 -0
- {fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_backend.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastembed-haystack
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: Haystack 2.x component to embed strings and Documents using fastembed embedding model
|
|
5
5
|
Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations
|
|
6
6
|
Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/fastembed/README.md
|
|
@@ -177,13 +177,12 @@ class FastembedRanker:
|
|
|
177
177
|
raise ValueError(msg)
|
|
178
178
|
|
|
179
179
|
if self._model is None:
|
|
180
|
-
|
|
181
|
-
raise RuntimeError(msg)
|
|
180
|
+
self.warm_up()
|
|
182
181
|
|
|
183
182
|
fastembed_input_docs = self._prepare_fastembed_input_docs(documents)
|
|
184
183
|
|
|
185
184
|
scores = list(
|
|
186
|
-
self._model.rerank(
|
|
185
|
+
self._model.rerank( # type: ignore[union-attr]
|
|
187
186
|
query=query,
|
|
188
187
|
documents=fastembed_input_docs,
|
|
189
188
|
batch_size=self.batch_size,
|
{fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_document_embedder.py
RENAMED
|
@@ -281,12 +281,25 @@ class TestFastembedDocumentEmbedder:
|
|
|
281
281
|
parallel=None,
|
|
282
282
|
)
|
|
283
283
|
|
|
284
|
+
def test_run_calls_warm_up(self):
|
|
285
|
+
embedder = FastembedDocumentEmbedder()
|
|
286
|
+
assert embedder.embedding_backend is None
|
|
287
|
+
|
|
288
|
+
mock_backend = MagicMock()
|
|
289
|
+
mock_backend.embed.return_value = [[0.1, 0.2, 0.3]]
|
|
290
|
+
|
|
291
|
+
with patch.object(
|
|
292
|
+
embedder, "warm_up", side_effect=lambda: setattr(embedder, "embedding_backend", mock_backend)
|
|
293
|
+
) as mock_warm_up:
|
|
294
|
+
embedder.run(documents=[Document(content="test document")])
|
|
295
|
+
|
|
296
|
+
mock_warm_up.assert_called_once()
|
|
297
|
+
|
|
284
298
|
@pytest.mark.integration
|
|
285
299
|
def test_run(self):
|
|
286
300
|
embedder = FastembedDocumentEmbedder(
|
|
287
301
|
model="BAAI/bge-small-en-v1.5",
|
|
288
302
|
)
|
|
289
|
-
embedder.warm_up()
|
|
290
303
|
|
|
291
304
|
doc = Document(content="Parton energy loss in QCD matter")
|
|
292
305
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
|
|
5
|
-
from unittest.mock import MagicMock
|
|
5
|
+
from unittest.mock import MagicMock, patch
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import pytest
|
|
@@ -257,10 +257,23 @@ class TestFastembedRanker:
|
|
|
257
257
|
parallel=None,
|
|
258
258
|
)
|
|
259
259
|
|
|
260
|
+
def test_run_calls_warm_up(self):
|
|
261
|
+
"""
|
|
262
|
+
Unit test to check that warm_up is called when run is called for the first time.
|
|
263
|
+
"""
|
|
264
|
+
ranker = FastembedRanker()
|
|
265
|
+
|
|
266
|
+
mock_model = MagicMock()
|
|
267
|
+
mock_model.rerank.return_value = [0.5]
|
|
268
|
+
|
|
269
|
+
with patch.object(ranker, "warm_up", side_effect=lambda: setattr(ranker, "_model", mock_model)) as mock_warm_up:
|
|
270
|
+
ranker.run(query="test query", documents=[Document(content="test document")])
|
|
271
|
+
|
|
272
|
+
mock_warm_up.assert_called_once()
|
|
273
|
+
|
|
260
274
|
@pytest.mark.integration
|
|
261
275
|
def test_run(self):
|
|
262
276
|
ranker = FastembedRanker(model_name="Xenova/ms-marco-MiniLM-L-6-v2", top_k=2)
|
|
263
|
-
ranker.warm_up()
|
|
264
277
|
|
|
265
278
|
query = "Who is maintaining Qdrant?"
|
|
266
279
|
documents = [
|
|
@@ -304,6 +304,19 @@ class TestFastembedSparseDocumentEmbedderDoc:
|
|
|
304
304
|
|
|
305
305
|
assert embedder.model_kwargs == bm25_config
|
|
306
306
|
|
|
307
|
+
def test_run_calls_warm_up(self):
|
|
308
|
+
embedder = FastembedSparseDocumentEmbedder()
|
|
309
|
+
|
|
310
|
+
mock_backend = MagicMock()
|
|
311
|
+
mock_backend.embed.return_value = [{"indices": [0], "values": [0.5]}]
|
|
312
|
+
|
|
313
|
+
with patch.object(
|
|
314
|
+
embedder, "warm_up", side_effect=lambda: setattr(embedder, "embedding_backend", mock_backend)
|
|
315
|
+
) as mock_warm_up:
|
|
316
|
+
embedder.run(documents=[Document(content="test document")])
|
|
317
|
+
|
|
318
|
+
mock_warm_up.assert_called_once()
|
|
319
|
+
|
|
307
320
|
@pytest.mark.integration
|
|
308
321
|
def test_run_with_model_kwargs(self):
|
|
309
322
|
"""
|
|
@@ -317,7 +330,6 @@ class TestFastembedSparseDocumentEmbedderDoc:
|
|
|
317
330
|
model="Qdrant/bm42-all-minilm-l6-v2-attentions",
|
|
318
331
|
model_kwargs=bm42_config,
|
|
319
332
|
)
|
|
320
|
-
embedder.warm_up()
|
|
321
333
|
|
|
322
334
|
doc = Document(content="Example content using BM42")
|
|
323
335
|
|
|
@@ -336,7 +348,6 @@ class TestFastembedSparseDocumentEmbedderDoc:
|
|
|
336
348
|
embedder = FastembedSparseDocumentEmbedder(
|
|
337
349
|
model="prithivida/Splade_PP_en_v1",
|
|
338
350
|
)
|
|
339
|
-
embedder.warm_up()
|
|
340
351
|
|
|
341
352
|
doc = Document(content="Parton energy loss in QCD matter")
|
|
342
353
|
|
{fastembed_haystack-2.0.0 → fastembed_haystack-2.1.0}/tests/test_fastembed_sparse_text_embedder.py
RENAMED
|
@@ -224,6 +224,20 @@ class TestFastembedSparseTextEmbedder:
|
|
|
224
224
|
|
|
225
225
|
assert embedder.model_kwargs == bm25_config
|
|
226
226
|
|
|
227
|
+
def test_run_calls_warm_up(self):
|
|
228
|
+
embedder = FastembedSparseTextEmbedder()
|
|
229
|
+
assert embedder.embedding_backend is None
|
|
230
|
+
|
|
231
|
+
mock_backend = MagicMock()
|
|
232
|
+
mock_backend.embed.return_value = [[0.1, 0.2, 0.3]]
|
|
233
|
+
|
|
234
|
+
with patch.object(
|
|
235
|
+
embedder, "warm_up", side_effect=lambda: setattr(embedder, "embedding_backend", mock_backend)
|
|
236
|
+
) as mock_warm_up:
|
|
237
|
+
embedder.run(text="test text")
|
|
238
|
+
|
|
239
|
+
mock_warm_up.assert_called_once()
|
|
240
|
+
|
|
227
241
|
@pytest.mark.integration
|
|
228
242
|
def test_run_with_model_kwargs(self):
|
|
229
243
|
"""
|
|
@@ -258,7 +272,6 @@ class TestFastembedSparseTextEmbedder:
|
|
|
258
272
|
embedder = FastembedSparseTextEmbedder(
|
|
259
273
|
model="prithivida/Splade_PP_en_v1",
|
|
260
274
|
)
|
|
261
|
-
embedder.warm_up()
|
|
262
275
|
|
|
263
276
|
text = "Parton energy loss in QCD matter"
|
|
264
277
|
|
|
@@ -202,12 +202,25 @@ class TestFastembedTextEmbedder:
|
|
|
202
202
|
with pytest.raises(TypeError, match="FastembedTextEmbedder expects a string as input"):
|
|
203
203
|
embedder.run(text=list_integers_input)
|
|
204
204
|
|
|
205
|
+
def test_run_calls_warm_up(self):
|
|
206
|
+
embedder = FastembedTextEmbedder()
|
|
207
|
+
assert embedder.embedding_backend is None
|
|
208
|
+
|
|
209
|
+
mock_backend = MagicMock()
|
|
210
|
+
mock_backend.embed.return_value = [[0.1, 0.2, 0.3]]
|
|
211
|
+
|
|
212
|
+
with patch.object(
|
|
213
|
+
embedder, "warm_up", side_effect=lambda: setattr(embedder, "embedding_backend", mock_backend)
|
|
214
|
+
) as mock_warm_up:
|
|
215
|
+
embedder.run(text="test text")
|
|
216
|
+
|
|
217
|
+
mock_warm_up.assert_called_once()
|
|
218
|
+
|
|
205
219
|
@pytest.mark.integration
|
|
206
220
|
def test_run(self):
|
|
207
221
|
embedder = FastembedTextEmbedder(
|
|
208
222
|
model="BAAI/bge-small-en-v1.5",
|
|
209
223
|
)
|
|
210
|
-
embedder.warm_up()
|
|
211
224
|
|
|
212
225
|
text = "Parton energy loss in QCD matter"
|
|
213
226
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|