LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
  • MCP Adapters
    • Overview
    • Agents
    • Callbacks
    • Chains
    • Chat models
    • Embeddings
    • Evaluation
    • Globals
    • Hub
    • Memory
    • Output parsers
    • Retrievers
    • Runnables
    • LangSmith
    • Storage
    Standard Tests
    Text Splitters
    ⌘I

    LangChain Assistant

    Ask a question to get started

    Enter to send•Shift+Enter new line

    Menu

    MCP Adapters
    OverviewAgentsCallbacksChainsChat modelsEmbeddingsEvaluationGlobalsHubMemoryOutput parsersRetrieversRunnablesLangSmithStorage
    Standard Tests
    Text Splitters
    Language
    Theme
    Pythonlangchain-classicstorageencoder_backedEncoderBackedStore
    Class●Since v1.0

    EncoderBackedStore

    Copy
    EncoderBackedStore(
      self,
      store: BaseStore[str, Any],
      key_encoder: Callable[[K

    Bases

    BaseStore[K, V]

    Constructors

    Attributes

    Methods

    View source on GitHub
    ]
    ,
    str
    ]
    ,
    value_serializer
    :
    Callable
    [
    [
    V
    ]
    ,
    bytes
    ]
    ,
    value_deserializer
    :
    Callable
    [
    [
    Any
    ]
    ,
    V
    ]
    )

    Parameters

    NameTypeDescription
    store*BaseStore[str, Any]

    The underlying byte store to wrap.

    key_encoder*Callable[[K], str]

    Function to encode keys from type K to strings.

    value_serializer*Callable[[V], bytes]
    value_deserializer*Callable[[Any], V]
    constructor
    __init__
    NameType
    storeBaseStore[str, Any]
    key_encoderCallable[[K], str]
    value_serializerCallable[[V], bytes]
    value_deserializerCallable[[Any], V]
    attribute
    store: store
    attribute
    key_encoder: key_encoder
    attribute
    value_serializer: value_serializer
    attribute
    value_deserializer: value_deserializer
    method
    mget

    Get the values associated with the given keys.

    method
    amget

    Async get the values associated with the given keys.

    method
    mset

    Set the values for the given keys.

    method
    amset

    Async set the values for the given keys.

    method
    mdelete

    Delete the given keys and their associated values.

    method
    amdelete

    Async delete the given keys and their associated values.

    method
    yield_keys

    Get an iterator over keys that match the given prefix.

    method
    ayield_keys

    Async get an iterator over keys that match the given prefix.

    Wraps a store with key and value encoders/decoders.

    Examples that uses JSON for encoding/decoding:

    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)
    
    # Create an instance of the abstract store
    abstract_store = MyCustomStore()
    
    # Create an instance of the encoder-backed store
    store = EncoderBackedStore(
        store=abstract_store,
        key_encoder=key_encoder,
        value_serializer=value_serializer,
        value_deserializer=value_deserializer,
    )
    
    # Use the encoder-backed store methods
    store.mset([(1, 3.14), (2, 2.718)])
    values = store.mget([1, 2])  # Retrieves [3.14, 2.718]
    store.mdelete([1, 2])  # Deletes the keys 1 and 2

    Function to serialize values from type V to bytes.

    Function to deserialize bytes back to type V.