|
1 | 1 | # pylint: disable=redefined-outer-name
|
2 | 2 |
|
3 |
| -from meilisearch.models.index import OpenAiEmbedder, UserProvidedEmbedder |
| 3 | +from meilisearch.models.index import CompositeEmbedder, HuggingFaceEmbedder, OpenAiEmbedder, UserProvidedEmbedder |
| 4 | +import pytest |
4 | 5 |
|
5 | 6 |
|
6 | 7 | def test_get_default_embedders(empty_index):
|
@@ -42,3 +43,30 @@ def test_reset_embedders(new_embedders, empty_index):
|
42 | 43 | assert isinstance(response_get.embedders["open_ai"], OpenAiEmbedder)
|
43 | 44 | response_last = index.get_embedders()
|
44 | 45 | assert response_last is None
|
| 46 | + |
| 47 | + |
| 48 | +@pytest.mark.usefixtures("enable_composite_embedders") |
| 49 | +def test_composite_embedders_configurable(empty_index): |
| 50 | + """Tests composite embedders.""" |
| 51 | + index = empty_index() |
| 52 | + |
| 53 | + hf_model = HuggingFaceEmbedder().model_dump(by_alias=True, exclude_none=True) |
| 54 | + |
| 55 | + # create composite embedder |
| 56 | + composite_spec = { |
| 57 | + "default": { |
| 58 | + "source": "composite", |
| 59 | + "searchEmbedder": hf_model, |
| 60 | + "indexingEmbedder": hf_model, |
| 61 | + } |
| 62 | + } |
| 63 | + |
| 64 | + response_update = index.update_embedders(composite_spec) |
| 65 | + update = index.wait_for_task(response_update.task_uid) |
| 66 | + response_get = index.get_embedders() |
| 67 | + assert update.status == "succeeded" |
| 68 | + |
| 69 | + embedder = response_get.embedders["default"] |
| 70 | + assert isinstance(embedder, CompositeEmbedder) |
| 71 | + assert isinstance(embedder.search_embedder, HuggingFaceEmbedder) |
| 72 | + assert isinstance(embedder.indexing_embedder, HuggingFaceEmbedder) |
0 commit comments