Skip to main content
Open on GitHub

键值存储

概览

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

LangChain 包含一个 BaseStore 接口, 允许存储任意数据。然而,需要键值存储的 LangChain 组件接受一个 更具体的 BaseStore[str, bytes] 实例,该实例存储二进制数据(称为 ByteStore),并内部处理 其特定需求的数据编码和解码。

这意味着作为用户,你只需要考虑一种类型的存储,而不需要为不同类型的数据分别考虑不同的存储方式。

使用

LangChain 中的键值存储接口主要用于:

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

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

请参阅以下操操作指南以获取更多信息:

界面

所有 BaseStores 支持以下接口。请注意,该接口允许同时修改 多个 键值对:

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

集成

请参考 商店集成页面 以获取可用的键值存储集成列表。