Toggle Menu
Prev Up Next

# `langchain_astradb.storage`.AstraDBStore

class langchain_astradb.storage.AstraDBStore(collection_name: str, *, token: Optional[str] = None, api_endpoint: Optional[str] = None, astra_db_client: Optional[AstraDB] = None, namespace: Optional[str] = None, async_astra_db_client: Optional[AsyncAstraDB] = None, pre_delete_collection: bool = False, setup_mode: SetupMode = SetupMode.SYNC)

  BaseStore implementation using DataStax AstraDB as the underlying store.

  The value type can be any type serializable by json.dumps. Can be used to store embeddings with the CacheBackedEmbeddings.

  Documents in the AstraDB collection will have the format

  Parameters

    - collection_name (str) – name of the Astra DB collection to create/use.

    - token (Optional[str]) – API token for Astra DB usage.

    - api_endpoint (Optional[str]) – full URL to the API endpoint, such as https://<DB-ID>-us-east1.apps.astra.datastax.com.

    - astra_db_client (Optional[AstraDB]) – alternative to token+api_endpoint, you can pass an already-created ‘astrapy.db.AstraDB’ instance.

    - async_astra_db_client (Optional[AsyncAstraDB]) – alternative to token+api_endpoint, you can pass an already-created ‘astrapy.db.AsyncAstraDB’ instance.

    - namespace (Optional[str]) – namespace (aka keyspace) where the collection is created. Defaults to the database’s “default namespace”.

    - setup_mode (SetupMode) – mode used to create the Astra DB collection (SYNC, ASYNC or OFF).

    - pre_delete_collection (bool) – whether to delete the collection before creating it. If False and the collection already exists, the collection will be used as is.

  Methods

  `__init__`(collection_name, *[, token, ...]) | BaseStore implementation using DataStax AstraDB as the underlying store.
  `amdelete`(keys) | Delete the given keys and their associated values.
  `amget`(keys) | Get the values associated with the given keys.
  `amset`(key_value_pairs) | Set the values for the given keys.
  `ayield_keys`(*[, prefix]) | Get an iterator over keys that match the given prefix.
  `decode_value`(value) | Decodes value from Astra DB
  `encode_value`(value) | Encodes value for Astra DB
  `mdelete`(keys) | Delete the given keys and their associated values.
  `mget`(keys) | Get the values associated with the given keys.
  `mset`(key_value_pairs) | Set the values for the given keys.
  `yield_keys`(*[, prefix]) | Get an iterator over keys that match the given prefix.

  __init__(collection_name: str, *, token: Optional[str] = None, api_endpoint: Optional[str] = None, astra_db_client: Optional[AstraDB] = None, namespace: Optional[str] = None, async_astra_db_client: Optional[AsyncAstraDB] = None, pre_delete_collection: bool = False, setup_mode: SetupMode = SetupMode.SYNC) → None

    BaseStore implementation using DataStax AstraDB as the underlying store.

    The value type can be any type serializable by json.dumps. Can be used to store embeddings with the CacheBackedEmbeddings.

    Documents in the AstraDB collection will have the format

    Parameters

      - collection_name (str) – name of the Astra DB collection to create/use.

      - token (Optional[str]) – API token for Astra DB usage.

      - api_endpoint (Optional[str]) – full URL to the API endpoint, such as https://<DB-ID>-us-east1.apps.astra.datastax.com.

      - astra_db_client (Optional[AstraDB]) – alternative to token+api_endpoint, you can pass an already-created ‘astrapy.db.AstraDB’ instance.

      - async_astra_db_client (Optional[AsyncAstraDB]) – alternative to token+api_endpoint, you can pass an already-created ‘astrapy.db.AsyncAstraDB’ instance.

      - namespace (Optional[str]) – namespace (aka keyspace) where the collection is created. Defaults to the database’s “default namespace”.

      - setup_mode (SetupMode) – mode used to create the Astra DB collection (SYNC, ASYNC or OFF).

      - pre_delete_collection (bool) – whether to delete the collection before creating it. If False and the collection already exists, the collection will be used as is.

    Return type

      None

  async amdelete(keys: Sequence[str]) → None

    Delete the given keys and their associated values.

    Parameters

      keys (Sequence[K]) – A sequence of keys to delete.

    Return type

      None

  async amget(keys: Sequence[str]) → List[Optional[V]]

    Get the values associated with the given keys.

    Parameters

      keys (Sequence[K]) – A sequence of keys.

    Returns

      A sequence of optional values associated with the keys. If a key is not found, the corresponding value will be None.

    Return type

      List[Optional[V]]

  async amset(key_value_pairs: Sequence[Tuple[str, V]]) → None

    Set the values for the given keys.

    Parameters

      key_value_pairs (Sequence[Tuple[K, V]]) – A sequence of key-value pairs.

    Return type

      None

  async ayield_keys(*, prefix: Optional[str] = None) → AsyncIterator[str]

    Get an iterator over keys that match the given prefix.

    Parameters

      prefix (str) – The prefix to match.

    Returns

      An iterator over keys that match the given prefix.

      This method is allowed to return an iterator over either K or str depending on what makes more sense for the given store.

    Return type

      Iterator[K | str]

  decode_value(value: Any) → Any

    Decodes value from Astra DB

    Parameters

      value (Any) –

    Return type

      Any

  encode_value(value: Any) → Any

    Encodes value for Astra DB

    Parameters

      value (Any) –

    Return type

      Any

  mdelete(keys: Sequence[str]) → None

    Delete the given keys and their associated values.

    Parameters

      keys (Sequence[K]) – A sequence of keys to delete.

    Return type

      None

  mget(keys: Sequence[str]) → List[Optional[V]]

    Get the values associated with the given keys.

    Parameters

      keys (Sequence[K]) – A sequence of keys.

    Returns

      A sequence of optional values associated with the keys. If a key is not found, the corresponding value will be None.

    Return type

      List[Optional[V]]

  mset(key_value_pairs: Sequence[Tuple[str, V]]) → None

    Set the values for the given keys.

    Parameters

      key_value_pairs (Sequence[Tuple[K, V]]) – A sequence of key-value pairs.

    Return type

      None

  yield_keys(*, prefix: Optional[str] = None) → Iterator[str]

    Get an iterator over keys that match the given prefix.

    Parameters

      prefix (str) – The prefix to match.

    Returns

      An iterator over keys that match the given prefix.

      This method is allowed to return an iterator over either K or str depending on what makes more sense for the given store.

    Return type

      Iterator[K | str]

# Examples using AstraDBStore

- Astra DB

- astradb.md