键值存储
概述
LangChain 提供了一个用于存储和检索数据的键值存储接口。
LangChain 包括一个BaseStore接口
它允许存储任意数据。但是,需要 KV 存储的 LangChain 组件接受
更具体BaseStore[str, bytes]实例,该实例存储二进制数据(称为ByteStore),并在内部负责
根据其特定需求对数据进行编码和解码。
这意味着作为用户,您只需考虑一种类型的存储,而不是针对不同类型的数据的不同存储。
用法
LangChain 中的 key-value store 接口主要用于:
-
通过 CachedBackedEmbeddings 缓存嵌入向量,以避免在重复查询或重新索引内容时重新计算嵌入向量。
-
作为某些检索器中的简单 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 集成页面。