langchain_core.stores
.BaseStore¶
- class langchain_core.stores.BaseStore[source]¶
键值存储的抽象接口。
这是一个旨在抽象不同键值存储细节的接口。它提供了一种简单的接口来获取、设置和删除键值对。
基本方法包括 mget、mset 和 mdelete,用于一次性获取、设置和删除多个键值对。使用 yield_keys 方法来遍历匹配给定前缀的键。
还提供了这些方法的异步版本,旨在在异步上下文中使用。异步方法以 a 前缀命名,例如 amget、amset、amdelete 和 ayield_keys。
默认情况下,amget、amset、amdelete 和 ayield_keys 方法使用同步方法实现。如果存储可以原生支持异步操作,它应该覆盖这些方法。
按设计,这些方法只接受键和值的批次,而不是单个键或值。这是为了强制用户代码与批次一起工作,通常更有效,因为它可以节省往返到存储的行程。
示例
from langchain.storage import BaseStore class MyInMemoryStore(BaseStore[str, int]): def __init__(self): self.store = {} def mget(self, keys): return [self.store.get(key) for key in keys] def mset(self, key_value_pairs): for key, value in key_value_pairs: self.store[key] = value def mdelete(self, keys): for key in keys: if key in self.store: del self.store[key] def yield_keys(self, prefix=None): if prefix is None: yield from self.store.keys() else: for key in self.store.keys(): if key.startswith(prefix): yield key
方法
__init__
()amdelete
(keys)异步删除指定的键及其关联的值。
amget
(keys)异步获取与给定键关联的值。
amset
(key_value_pairs)异步设置给定键的值。
ayield_keys
(*[, prefix])异步获取匹配给定前缀的键的迭代器。
mdelete
(keys)删除指定的键及其关联的值。
mget
(keys)获取与给定键关联的值。
mset
(key_value_pairs)为给定键设置值。
yield_keys
(*[, prefix])获取匹配给定前缀的键的迭代器。
- __init__()¶
- async amdelete(keys: Sequence[K]) None [source]¶
异步删除指定的键及其关联的值。
- 参数
keys (Sequence[K]) – 要删除的键的序列。
- 返回类型
None
- async amget(keys: Sequence[K]) List[Optional[V]] [source]¶
异步获取与给定键关联的值。
- 参数
keys (Sequence[K]) – 一组键。
- 返回
与键关联的值的序列。如果找不到键,相应的值将为 None。
- 返回类型
List[Optional[V]]
- async amset(key_value_pairs: Sequence[Tuple[K, V]]) None [source]¶
异步设置给定键的值。
- 参数
key_value_pairs (Sequence[Tuple[K, V]]) – 一组键值对。
- 返回类型
None
- async ayield_keys(*, prefix: Optional[str] = None) Union[AsyncIterator[K], AsyncIterator[str]] [source]¶
异步获取匹配给定前缀的键的迭代器。
- 参数
prefix (str) – 匹配的前缀。
- 产出
Iterator[K | str] – 对匹配给定前缀的键的迭代器。该方法允许返回 K 或 str 的迭代器,具体取决于对给定存储更合理。
- 返回类型
Union[AsyncIterator[K], AsyncIterator[str]]
- abstract mdelete(keys: Sequence[K]) None [source]¶
删除指定的键及其关联的值。
- 参数
keys (Sequence[K]) – 要删除的键的序列。
- 返回类型
None
- (抽象方法) mget(keys: Sequence[K]) List[Optional[V]][源代码]¶
获取与给定键关联的值。
- 参数
keys (Sequence[K]) – 一组键。
- 返回
与键关联的值的序列。如果找不到键,相应的值将为 None。
- 返回类型
List[Optional[V]]