From 6bf0f4e8bab3d0da58000f65e06aae481d35b03a Mon Sep 17 00:00:00 2001 From: anakin87 Date: Mon, 13 Apr 2026 10:46:45 +0200 Subject: [PATCH 1/2] chore: Optimum - use new import path for SentenceTransformerPoolingLayer --- .../components/embedders/optimum/_backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py b/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py index 69acbc543b..2a2f18deb6 100644 --- a/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py +++ b/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py @@ -13,7 +13,7 @@ from haystack.utils import Secret, deserialize_secrets_inplace from haystack.utils.hf import HFModelType, check_valid_model, deserialize_hf_model_kwargs, serialize_hf_model_kwargs from huggingface_hub import hf_hub_download -from sentence_transformers.models import Pooling as SentenceTransformerPoolingLayer +from sentence_transformers.sentence_transformer.modules import Pooling as SentenceTransformerPoolingLayer from tqdm import tqdm from transformers import AutoTokenizer from transformers.modeling_outputs import BaseModelOutput From be66f358b62c72394489d7f012fb9f03c2a70c16 Mon Sep 17 00:00:00 2001 From: anakin87 Date: Mon, 13 Apr 2026 10:56:18 +0200 Subject: [PATCH 2/2] try/except --- .../components/embedders/optimum/_backend.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py b/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py index 2a2f18deb6..953412f61f 100644 --- a/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py +++ b/integrations/optimum/src/haystack_integrations/components/embedders/optimum/_backend.py @@ -13,7 +13,6 @@ from haystack.utils import Secret, deserialize_secrets_inplace from haystack.utils.hf import HFModelType, check_valid_model, deserialize_hf_model_kwargs, serialize_hf_model_kwargs from huggingface_hub import hf_hub_download -from sentence_transformers.sentence_transformer.modules import Pooling as SentenceTransformerPoolingLayer from tqdm import tqdm from transformers import AutoTokenizer from transformers.modeling_outputs import BaseModelOutput @@ -28,6 +27,15 @@ from .pooling import OptimumEmbedderPooling from .quantization import OptimumEmbedderQuantizationConfig +# for sentence-transformers Pooling, we use the new module path if available. It also ships correct types +# we also keep compatibility with older versions of sentence-transformers +try: + from sentence_transformers.sentence_transformer.modules import Pooling as SentenceTransformerPoolingLayer +except ImportError: + from sentence_transformers.models import ( # type: ignore[import-not-found, no-redef] + Pooling as SentenceTransformerPoolingLayer, + ) + @dataclass class _EmbedderParams: