键值存储
概述
LangChain 提供了一个用于存储和检索数据的键值存储接口。
LangChain 包含一个 BaseStore
接口,
它允许存储任意数据。然而,需要键值存储的 LangChain 组件接受一个更具体的 BaseStore[str, bytes]
实例,该实例存储二进制数据(称为 ByteStore
),并在内部根据其特定需求处理数据的编码和解码。
这意味着作为用户,您只需要考虑一种类型的存储,而不是为不同类型的数据考虑不同的存储。
用法
LangChain中的键值存储接口主要用于:
-
通过CachedBackedEmbeddings缓存embeddings,以避免重复查询或重新索引内容时重新计算embeddings。
-
作为一些检索器中简单的Document持久化层。
请参阅这些操作指南以获取更多信息:
接口
所有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]
: 生成存储中的所有键,可以选择通过前缀进行过滤
集成
请参考stores集成页面以获取可用的键值存储集成列表。