Key-value stores

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]:生成存储中的所有键,支持根据前缀进行可选筛选。

有关键值存储实现的更多信息,请参阅此部分

© 2024 青蛙小白