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
方法
amdelete
(keys)异步删除给定的键及其关联的值。
amget
(keys)异步获取与给定键关联的值。
amset
(key_value_pairs)异步设置给定键的值。
ayield_keys
(*[, prefix])异步获取一个迭代器,用于遍历与给定前缀匹配的键。
mdelete
(keys)删除给定的键及其关联的值。
mget
(keys)获取与给定键关联的值。
mset
(key_value_pairs)为给定的键设置值。
yield_keys
(*[, prefix])获取与给定前缀匹配的键的迭代器。
- async amdelete(keys: Sequence[K]) None [来源]#
异步删除给定的键及其关联的值。
- Parameters:
keys (Sequence[K]) – 要删除的键序列。
- Return type:
无
- async amget(keys: Sequence[K]) list[V | None] [来源]#
异步获取与给定键关联的值。
- Parameters:
keys (Sequence[K]) – 一个键的序列。
- Returns:
与键相关联的一系列可选值。 如果未找到键,则对应的值将为None。
- Return type:
列表[V | 无]
- async amset(key_value_pairs: Sequence[tuple[K, V]]) None [来源]#
异步设置给定键的值。
- Parameters:
key_value_pairs (Sequence[Tuple[K, V]]) – 一个键值对的序列。
- Return type:
无
- async ayield_keys(*, prefix: str | None = None) AsyncIterator[K] | AsyncIterator[str] [source]#
异步获取一个迭代器,用于遍历与给定前缀匹配的键。
- Parameters:
prefix (str) – 要匹配的前缀。
- Yields:
Iterator[K | str] – 一个遍历匹配给定前缀的键的迭代器。 此方法允许返回一个遍历 K 或 str 的迭代器, 具体取决于给定存储的哪种方式更有意义。
- Return type:
AsyncIterator[K] | AsyncIterator[str]
- abstract mdelete(keys: Sequence[K]) None [来源]#
删除给定的键及其关联的值。
- Parameters:
keys (Sequence[K]) – 要删除的键序列。
- Return type:
无
- abstract mget(keys: Sequence[K]) list[V | None] [source]#
获取与给定键关联的值。
- Parameters:
keys (Sequence[K]) – 一个键的序列。
- Returns:
与键相关联的一系列可选值。 如果未找到键,则对应的值将为None。
- Return type:
列表[V | 无]
使用 BaseStore 的示例