Key-value stores #
https://python.langchain.com/docs/concepts/#key-value-stores
对于某些技术,比如使用每个文档的多个向量进行索引和检索或缓存嵌入,拥有一种键值(KV)存储形式是有帮助的。
LangChain 包含一个 BaseStore
接口,允许存储任意数据。然而,LangChain 中需要键值存储的组件会接受一个更具体的 BaseStore[str, bytes]
实例,该实例存储二进制数据(称为 ByteStore
),并在内部处理数据的编码和解码,以满足其特定需求。
这意味着作为用户,你只需要考虑一种类型的存储,而不必为不同类型的数据使用不同的存储。
接口 #
所有 BaseStore
都支持以下接口。请注意,该接口允许一次修改多个键值对:
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]
:生成存储中的所有键,支持根据前缀进行可选筛选。
有关键值存储实现的更多信息,请参阅此部分。