Overview

LangChain provides a key-value store interface for storing and retrieving data by key. The key-value store interface in LangChain is primarily used for caching embeddings.

Interface

All BaseStores support the following interface:
  • mget(key: Sequence[str]) -> List[Optional[bytes]]: get the contents of multiple keys, returning None if the key does not exist
  • mset(key_value_pairs: Sequence[Tuple[str, bytes]]) -> None: set the contents of multiple keys
  • mdelete(key: Sequence[str]) -> None: delete multiple keys
  • yield_keys(prefix: Optional[str] = None) -> Iterator[str]: yield all keys in the store, optionally filtering by a prefix
Base stores are designed to work multiple key-value pairs at once for efficiency. This saves on network round-trips and may allow for more efficient batch operations in the underlying store.

Built-in stores for local development

Custom stores

You can also implement your own custom store by extending the BaseStore class. See the store interface documentation for more details.

All integrations