Skip to main content
在 GitHub 上打开

键值存储

概述

LangChain 提供了一个用于存储和检索数据的键值存储接口。

LangChain 包括一个BaseStore接口 它允许存储任意数据。但是,需要 KV 存储的 LangChain 组件接受 更具体BaseStore[str, bytes]实例,该实例存储二进制数据(称为ByteStore),并在内部负责 根据其特定需求对数据进行编码和解码。

这意味着作为用户,您只需考虑一种类型的存储,而不是针对不同类型的数据的不同存储。

用法

LangChain 中的 key-value store 接口主要用于:

  1. 通过 CachedBackedEmbeddings 缓存嵌入向量,以避免在重复查询或重新索引内容时重新计算嵌入向量。

  2. 作为某些检索器中的简单 Document 持久层。

有关更多信息,请参阅以下操作指南:

接口

AllBaseStores支持以下接口。请注意,该接口允许一次修改多个键值对:

  • mget(key: Sequence[str]) -> List[Optional[bytes]]:获取多个 Key 的内容,返回None如果密钥不存在
  • mset(key_value_pairs: Sequence[Tuple[str, bytes]]) -> None:设置多个键的内容
  • mdelete(key: Sequence[str]) -> None:删除多个键
  • yield_keys(prefix: Optional[str] = None) -> Iterator[str]:生成 store 中的所有键,可选择按前缀筛选

集成

有关可用键值商店集成的列表,请参阅 stores 集成页面