将 Pipelines 包装成组件。
Module haystack_experimental.super_components.indexers.sentence_transformers_document_indexer
SentenceTransformersDocumentIndexer
一个文档索引器,它接收文档列表,使用 SentenceTransformers 对其进行嵌入,然后进行存储。
用法
>>> from haystack import Document
>>> from haystack.document_stores.in_memory import InMemoryDocumentStore
>>> document_store = InMemoryDocumentStore()
>>> doc = Document(content="I love pizza!")
>>> indexer = SentenceTransformersDocumentIndexer(document_store=document_store)
>>> indexer.warm_up()
>>> result = indexer.run(documents=[doc])
>>> print(result)
{'documents_written': 1}
>>> document_store.count_documents()
1
SentenceTransformersDocumentIndexer.__init__
def __init__(
document_store: DocumentStore,
model: str = "sentence-transformers/all-mpnet-base-v2",
device: Optional[ComponentDevice] = None,
token: Optional[Secret] = Secret.from_env_var(
["HF_API_TOKEN", "HF_TOKEN"], strict=False),
prefix: str = "",
suffix: str = "",
batch_size: int = 32,
progress_bar: bool = True,
normalize_embeddings: bool = False,
meta_fields_to_embed: Optional[List[str]] = None,
embedding_separator: str = "\n",
trust_remote_code: bool = False,
truncate_dim: Optional[int] = None,
model_kwargs: Optional[Dict[str, Any]] = None,
tokenizer_kwargs: Optional[Dict[str, Any]] = None,
config_kwargs: Optional[Dict[str, Any]] = None,
precision: Literal["float32", "int8", "uint8", "binary",
"ubinary"] = "float32",
duplicate_policy: DuplicatePolicy = DuplicatePolicy.OVERWRITE) -> None
初始化 SentenceTransformersDocumentIndexer 组件。
参数:
document_store: 要存储文档的文档存储。model: 要使用的嵌入模型(本地路径或 Hugging Face 模型 ID)。device: 用于加载模型的设备。token: 用于从 Hugging Face 下载私有模型的 API 令牌。prefix: 添加到每个文档文本开头的字符串。suffix: 添加到每个文档文本末尾的字符串。batch_size:一次嵌入的文档数量。progress_bar: 如果为 True,则在嵌入文档时显示进度条。normalize_embeddings: 如果为 True,则嵌入将进行 L2 归一化。meta_fields_to_embed: 要与文档文本一起嵌入的元数据字段列表。embedding_separator: 用于连接元数据字段到文档文本的分隔符。trust_remote_code: 如果为 True,则允许自定义模型和脚本。truncate_dim: 用于截断句子嵌入的维度。model_kwargs: 用于模型初始化的其他关键字参数。tokenizer_kwargs: 用于分词器初始化的其他关键字参数。config_kwargs: 用于模型配置的其他关键字参数。precision: 用于嵌入的精度。duplicate_policy: 写入文档时要使用的重复策略。
SentenceTransformersDocumentIndexer.to_dict
def to_dict() -> Dict[str, Any]
将此实例序列化为字典。
SentenceTransformersDocumentIndexer.from_dict
@classmethod
def from_dict(cls, data: Dict[str,
Any]) -> "SentenceTransformersDocumentIndexer"
从字典加载此组件的实例。
