|
1 | 1 | # pylint: disable=redefined-outer-name
|
2 | 2 |
|
3 | 3 | import pytest
|
| 4 | + |
4 | 5 | from meilisearch.models.embedders import (
|
| 6 | + CompositeEmbedder, |
5 | 7 | HuggingFaceEmbedder,
|
6 | 8 | OpenAiEmbedder,
|
7 | 9 | UserProvidedEmbedder,
|
8 |
| - CompositeEmbedder, |
9 | 10 | )
|
10 | 11 |
|
11 | 12 |
|
@@ -103,6 +104,7 @@ def test_huggingface_embedder_format(empty_index):
|
103 | 104 | assert embedders.embedders["huggingface"].distribution.mean == 0.5
|
104 | 105 | assert embedders.embedders["huggingface"].distribution.sigma == 0.1
|
105 | 106 | assert embedders.embedders["huggingface"].binary_quantized is False
|
| 107 | + assert embedders.embedders["huggingface"].pooling is False |
106 | 108 |
|
107 | 109 |
|
108 | 110 | def test_ollama_embedder_format(empty_index):
|
@@ -196,28 +198,36 @@ def test_composite_embedder_format(empty_index):
|
196 | 198 | """Tests that CompositeEmbedder embedder has the required fields and proper format."""
|
197 | 199 | index = empty_index()
|
198 | 200 |
|
199 |
| - hf_default = HuggingFaceEmbedder().model_dump(by_alias=True, exclude_none=True) |
| 201 | + embedder = HuggingFaceEmbedder().model_dump(by_alias=True, exclude_none=True) |
200 | 202 |
|
201 | 203 | # create composite embedder
|
202 | 204 | composite_embedder = {
|
203 |
| - "default": { |
| 205 | + "composite": { |
204 | 206 | "source": "composite",
|
205 |
| - "searchEmbedder": hf_default, |
206 |
| - "indexingEmbedder": hf_default, |
| 207 | + "searchEmbedder": embedder, |
| 208 | + "indexingEmbedder": embedder, |
207 | 209 | }
|
208 | 210 | }
|
209 | 211 |
|
210 | 212 | response = index.update_embedders(composite_embedder)
|
211 |
| - index.wait_for_task(response.task_uid) |
| 213 | + update = index.wait_for_task(response.task_uid) |
212 | 214 | embedders = index.get_embedders()
|
213 |
| - print(embedders) |
| 215 | + assert update.status == "succeeded" |
| 216 | + |
214 | 217 | assert embedders.embedders["composite"].source == "composite"
|
215 | 218 |
|
| 219 | + # ensure serialization roundtrips nicely |
216 | 220 | assert isinstance(embedders.embedders["composite"], CompositeEmbedder)
|
217 | 221 | assert isinstance(embedders.embedders["composite"].search_embedder, HuggingFaceEmbedder)
|
218 | 222 | assert isinstance(embedders.embedders["composite"].indexing_embedder, HuggingFaceEmbedder)
|
219 | 223 |
|
220 |
| - assert not hasattr(embedders.embedders["composite"].search_embedder, "document_template") |
221 |
| - assert not hasattr(embedders.embedders["composite"].search_embedder, "document_template_max_bytes") |
222 |
| - assert hasattr(embedders.embedders["composite"].indexing_embedder, "document_template") |
223 |
| - |
| 224 | + # ensure search_embedder has no document_template |
| 225 | + assert getattr(embedders.embedders["composite"].search_embedder, "document_template") is None |
| 226 | + assert ( |
| 227 | + getattr( |
| 228 | + embedders.embedders["composite"].search_embedder, |
| 229 | + "document_template_max_bytes", |
| 230 | + ) |
| 231 | + is None |
| 232 | + ) |
| 233 | + assert getattr(embedders.embedders["composite"].indexing_embedder, "document_template") |
0 commit comments