langchain.storage.encoder_backed.EncoderBackedStore

class langchain.storage.encoder_backed.EncoderBackedStore(store: BaseStore[str, Any], key_encoder: Callable[[K], str], value_serializer: Callable[[V], bytes], value_deserializer: Callable[[Any], V])[source]

使用键和值编码器/解码器包装存储。

使用JSON进行编码/解码的示例:

import json

def key_encoder(key: int) -> str:
    return json.dumps(key)

def value_serializer(value: float) -> str:
    return json.dumps(value)

def value_deserializer(serialized_value: str) -> float:
    return json.loads(serialized_value)

# 创建抽象存储的实例
abstract_store = MyCustomStore()

# 创建支持编码器的存储的实例
store = EncoderBackedStore(
    store=abstract_store,
    key_encoder=key_encoder,
    value_serializer=value_serializer,
    value_deserializer=value_deserializer
)

# 使用支持编码器的存储方法
store.mset([(1, 3.14), (2, 2.718)])
values = store.mget([1, 2])  # 检索 [3.14, 2.718]
store.mdelete([1, 2])  # 删除键1和2

初始化一个EncodedStore。

Methods

__init__(store, key_encoder, ...)

初始化一个EncodedStore。

amdelete(keys)

删除给定的键及其关联的值。

amget(keys)

获取与给定键相关联的值。

amset(key_value_pairs)

设置给定键的值。

ayield_keys(*[, prefix])

获取与给定前缀匹配的键的迭代器。

mdelete(keys)

删除给定的键及其关联的值。

mget(keys)

获取与给定键相关联的值。

mset(key_value_pairs)

设置给定键的值。

yield_keys(*[, prefix])

获取与给定前缀匹配的键的迭代器。

Parameters
  • store (BaseStore[str, Any]) –

  • key_encoder (Callable[[K], str]) –

  • value_serializer (Callable[[V], bytes]) –

  • value_deserializer (Callable[[Any], V]) –

Return type

None

__init__(store: BaseStore[str, Any], key_encoder: Callable[[K], str], value_serializer: Callable[[V], bytes], value_deserializer: Callable[[Any], V]) None[source]

初始化一个EncodedStore。

Parameters
  • store (BaseStore[str, Any]) –

  • key_encoder (Callable[[K], str]) –

  • value_serializer (Callable[[V], bytes]) –

  • value_deserializer (Callable[[Any], V]) –

Return type

None

async amdelete(keys: Sequence[K]) None[source]

删除给定的键及其关联的值。

Parameters

keys (Sequence[K]) –

Return type

None

async amget(keys: Sequence[K]) List[Optional[V]][source]

获取与给定键相关联的值。

Parameters

keys (Sequence[K]) –

Return type

List[Optional[V]]

async amset(key_value_pairs: Sequence[Tuple[K, V]]) None[source]

设置给定键的值。

Parameters

key_value_pairs (Sequence[Tuple[K, V]]) –

Return type

None

async ayield_keys(*, prefix: Optional[str] = None) Union[AsyncIterator[K], AsyncIterator[str]][source]

获取与给定前缀匹配的键的迭代器。

Parameters

prefix (Optional[str]) –

Return type

Union[AsyncIterator[K], AsyncIterator[str]]

mdelete(keys: Sequence[K]) None[source]

删除给定的键及其关联的值。

Parameters

keys (Sequence[K]) –

Return type

None

mget(keys: Sequence[K]) List[Optional[V]][source]

获取与给定键相关联的值。

Parameters

keys (Sequence[K]) –

Return type

List[Optional[V]]

mset(key_value_pairs: Sequence[Tuple[K, V]]) None[source]

设置给定键的值。

Parameters

key_value_pairs (Sequence[Tuple[K, V]]) –

Return type

None

yield_keys(*, prefix: Optional[str] = None) Union[Iterator[K], Iterator[str]][source]

获取与给定前缀匹配的键的迭代器。

Parameters

prefix (Optional[str]) –

Return type

Union[Iterator[K], Iterator[str]]