44
55import os
66import warnings
7+ from dataclasses import replace
78from typing import Any , Optional , Union
89
910from haystack import Document , component , default_from_dict , default_to_dict , logging
@@ -49,7 +50,7 @@ def __init__(
4950 embedding_separator : str = "\n " ,
5051 truncate : Optional [Union [EmbeddingTruncateMode , str ]] = None ,
5152 timeout : Optional [float ] = None ,
52- ):
53+ ) -> None :
5354 """
5455 Create a NvidiaTextEmbedder component.
5556
@@ -108,7 +109,7 @@ def __init__(
108109 def class_name (cls ) -> str :
109110 return "NvidiaDocumentEmbedder"
110111
111- def default_model (self ):
112+ def default_model (self ) -> None :
112113 """Set default model in local NIM mode."""
113114 valid_models = [
114115 model .id for model in self .available_models if not model .base_model or model .base_model == model .id
@@ -129,7 +130,7 @@ def default_model(self):
129130 error_message = "No locally hosted model was found."
130131 raise ValueError (error_message )
131132
132- def warm_up (self ):
133+ def warm_up (self ) -> None :
133134 """
134135 Initializes the component.
135136 """
@@ -267,7 +268,9 @@ def run(self, documents: list[Document]) -> dict[str, Union[list[Document], dict
267268
268269 texts_to_embed = self ._prepare_texts_to_embed (documents )
269270 embeddings , metadata = self ._embed_batch (texts_to_embed , self .batch_size )
271+
272+ new_documents = []
270273 for doc , emb in zip (documents , embeddings ):
271- doc . embedding = emb
274+ new_documents . append ( replace ( doc , embedding = emb ))
272275
273- return {"documents" : documents , "meta" : metadata }
276+ return {"documents" : new_documents , "meta" : metadata }
0 commit comments