文档API 参考📓 教程🧑‍🍳 食谱🤝 集成💜 Discord🎨 Studio
API 参考

SuperComponents

将 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"

从字典加载此组件的实例。