langchain_core.indexing.api.aindex

async langchain_core.indexing.api.aindex(docs_source: Union[BaseLoader, Iterable[Document], AsyncIterator[Document]], record_manager: RecordManager, vector_store: VectorStore, *, batch_size: int = 100, cleanup: Optional[Literal['incremental', 'full', None]] = None, source_id_key: Optional[Union[str, Callable[[Document], str]]] = None, cleanup_batch_size: int = 1000, force_update: bool = False) IndexingResult[source]

将加载器中的数据异步索引到向量存储中。

索引功能使用管理器来跟踪哪些文档在向量存储中。

这允许我们跟踪哪些文档已被更新,哪些文档被删除,哪些文档应该跳过。

目前,文档使用它们的哈希进行索引,用户

无法指定文档的uid。

重要

如果自动清理设置为True,加载器应该返回整个数据集,而不仅仅是数据集的子集。否则,自动清理将删除它不应该删除的文档。

参数
  • docs_source (联合[BaseLoader, 可迭代对象[文档], 异步迭代器[文档]]) – 数据加载器或可迭代的文档索引。

  • record_manager (记录管理器) – 标记时间戳的集合,用于跟踪哪些文档已更新。

  • vector_store (向量存储库) – 将文档索引到的向量存储库。

  • batch_size (整型) – 索引时的批次大小。默认为100。

  • cleanup (可选[文字['incremental', 'full', None]]) –

    如何处理文档清理。默认为None。 - Incremental: 清理所有未更新的文档以及

    与索引过程中遇到的源ID关联的文档。清理在整个索引过程中持续进行,有助于最大限度地减少用户看到重复内容的可能性。

    • Full: 删除所有必须由加载器返回的文档。

      清理在所有文档都已索引后运行。这意味着用户在索引过程中可能会看到重复内容。

    • None: 不删除任何文档。

  • source_id_key (可选[联合[字符串, 可调用[[文档], 字符串]]]) – 可选的键,有助于识别文档的原始来源。默认为None。

  • cleanup_batch_size (整型) – 清理文档时使用的批大小。默认为1,000。

  • force_update (布尔型) – 即使文档已存在于记录管理器中,也强制更新文档。如果有使用更新的嵌入重新索引,则非常有用。默认为False。

返回

索引结果,其中包含有关已添加、更新、删除或跳过的文档数量的信息。

引发
  • ValueError – 如果清理模式不是'incremental'、'full'或None之一

  • ValueError – 如果清理模式是incremental且source_id_key为None。

  • ValueError – 如果向量存储库未具有所需的“adelete”和“aadd_documents”方法。

  • ValueError – 如果source_id_key不为空,但不是字符串或可调用。

返回类型

索引结果