Skip to content

Commit 52ef829

Browse files
refactor: OpenSearchHybridRetriever use deserialize_chatgenerator_inplace (#1870)
* test to use deserialize_chatgenerator_inplace * removing unused imports * using deserialize_chatgenerator_inplace * Update integrations/opensearch/src/haystack_integrations/components/retrievers/opensearch/open_search_hybrid_retriever.py
1 parent 4466506 commit 52ef829

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

integrations/opensearch/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ docs = ["pydoc-markdown pydoc/config.yml"]
6969
installer = "uv"
7070
detached = true
7171
dependencies = ["pip", "black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243", "boto3"]
72+
7273
[tool.hatch.envs.lint.scripts]
7374
typing = "mypy --install-types --non-interactive --explicit-package-bases {args:src/ tests}"
7475
style = ["ruff check {args:}", "black --check --diff {args:.}"]

integrations/opensearch/src/haystack_integrations/components/retrievers/opensearch/open_search_hybrid_retriever.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44

55
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
66

7-
from haystack import DeserializationError, Pipeline, default_from_dict, default_to_dict, logging, super_component
7+
from haystack import Pipeline, default_from_dict, default_to_dict, logging, super_component
88
from haystack.components.embedders.types import TextEmbedder
99
from haystack.components.joiners import DocumentJoiner
1010
from haystack.components.joiners.document_joiner import JoinMode
11-
from haystack.core.serialization import component_from_dict, component_to_dict, import_class_by_name
11+
from haystack.core.serialization import component_to_dict
1212
from haystack.document_stores.types import FilterPolicy
13+
from haystack.utils import deserialize_chatgenerator_inplace
1314

1415
from haystack_integrations.components.retrievers.opensearch import OpenSearchBM25Retriever, OpenSearchEmbeddingRetriever
1516
from haystack_integrations.document_stores.opensearch import OpenSearchDocumentStore
@@ -307,15 +308,8 @@ def from_dict(cls, data):
307308
data["init_parameters"]["document_store"] = doc_store
308309

309310
# deserialize the embedder
310-
try:
311-
text_embedder_class = import_class_by_name(data["init_parameters"]["embedder"]["type"])
312-
except ImportError as e:
313-
msg = f"Class '{data['init_parameters']['embedder']['type']}' not correctly imported"
314-
raise DeserializationError(msg) from e
315-
316-
data["init_parameters"]["embedder"] = component_from_dict(
317-
cls=text_embedder_class, data=data["init_parameters"]["embedder"], name="embedder"
318-
)
311+
# ToDo: in the future we should use the upcoming generic `deserialize_component_inplace` function
312+
deserialize_chatgenerator_inplace(data["init_parameters"], key="embedder")
319313

320314
# deserialize the embedders filtering policy
321315
if "filter_policy_bm25" in data["init_parameters"]:

0 commit comments

Comments
 (0)