langchain_core.indexing.api
.index¶
- langchain_core.indexing.api.index(docs_source: Union[BaseLoader, Iterable[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。
重要提示
如果 auto_cleanup 设置为 True,则加载器应返回整个数据集,而不仅仅是数据集的子集。否则,auto_cleanup 将删除不应删除的文档。
在增量模式下,如果与特定源 ID 关联的文档出现在不同的批次中,则索引 API 将执行一些冗余工作。 这仍然会导致索引的正确最终状态,但不幸的是,效率不会达到 100%。 例如,如果给定文档被拆分为 15 个块,并且我们使用 5 的批次大小对其进行索引,我们将有 3 个批次都具有相同的源 ID。 一般来说,为了避免做过多的冗余工作,请选择尽可能大的批次大小。
- 参数
docs_source (Union[BaseLoader, Iterable[Document]]) – 要索引的数据加载器或文档的可迭代对象。
record_manager (RecordManager) – 时间戳集合,用于跟踪哪些文档已更新。
vector_store (VectorStore) – 要将文档索引到其中的向量存储。
batch_size (int) – 索引时使用的批次大小。 默认为 100。
cleanup (Optional[Literal['incremental', 'full', None]]) –
如何处理文档的清理。 默认为 None。 - 增量:清理所有尚未更新且
与索引期间看到的源 ID 关联的文档。 清理在索引期间持续进行,有助于最大限度地降低用户看到重复内容的可能性。
- 完全:删除加载器未返回的所有文档
在此次索引运行期间。 清理在所有文档索引完成后运行。 这意味着用户在索引期间可能会看到重复的内容。
无:不删除任何文档。
source_id_key (Optional[Union[str, Callable[[Document], str]]]) – 可选键,用于帮助识别文档的原始来源。 默认为 None。
cleanup_batch_size (int) – 清理文档时使用的批次大小。 默认为 1_000。
force_update (bool) – 即使文档已存在于记录管理器中,也强制更新文档。 如果您正在使用更新的嵌入重新索引,这将非常有用。 默认为 False。
- 返回
索引结果,其中包含有关添加、更新、删除或跳过多少文档的信息。
- 引发
ValueError – 如果清理模式不是 ‘incremental’、‘full’ 或 None 之一
ValueError – 如果清理模式为增量,并且 source_id_key 为 None。
ValueError – 如果 vectorstore 没有所需的 “delete” 和 “add_documents” 方法。
ValueError – 如果 source_id_key 不是 None,但不是字符串或可调用对象。
- 返回类型