Toggle Menu
Prev Up Next

# `langchain_core.indexing.base`.RecordManager

class langchain_core.indexing.base.RecordManager(namespace: str)

  Abstract base class representing the interface for a record manager.

  Initialize the record manager.

  Parameters

    namespace (str) – The namespace for the record manager.

  Methods

  `__init__`(namespace) | Initialize the record manager.
  `acreate_schema`() | Asynchronously create the database schema for the record manager.
  `adelete_keys`(keys) | Asynchronously delete specified records from the database.
  `aexists`(keys) | Asynchronously check if the provided keys exist in the database.
  `aget_time`() | Asynchronously get the current server time as a high resolution timestamp.
  `alist_keys`(*[, before, after, group_ids, limit]) | Asynchronously list records in the database based on the provided filters.
  `aupdate`(keys, *[, group_ids, time_at_least]) | Asynchronously upsert records into the database.
  `create_schema`() | Create the database schema for the record manager.
  `delete_keys`(keys) | Delete specified records from the database.
  `exists`(keys) | Check if the provided keys exist in the database.
  `get_time`() | Get the current server time as a high resolution timestamp!
  `list_keys`(*[, before, after, group_ids, limit]) | List records in the database based on the provided filters.
  `update`(keys, *[, group_ids, time_at_least]) | Upsert records into the database.

  __init__(namespace: str) → None

    Initialize the record manager.

    Parameters

      namespace (str) – The namespace for the record manager.

    Return type

      None

  abstract async acreate_schema() → None

    Asynchronously create the database schema for the record manager.

    Return type

      None

  abstract async adelete_keys(keys: Sequence[str]) → None

    Asynchronously delete specified records from the database.

    Parameters

      keys (Sequence[str]) – A list of keys to delete.

    Return type

      None

  abstract async aexists(keys: Sequence[str]) → List[bool]

    Asynchronously check if the provided keys exist in the database.

    Parameters

      keys (Sequence[str]) – A list of keys to check.

    Returns

      A list of boolean values indicating the existence of each key.

    Return type

      List[bool]

  abstract async aget_time() → float

    Asynchronously get the current server time as a high resolution timestamp.

    It’s important to get this from the server to ensure a monotonic clock, otherwise there may be data loss when cleaning up old documents!

    Returns

      The current server time as a float timestamp.

    Return type

      float

  abstract async alist_keys(*, before: Optional[float] = None, after: Optional[float] = None, group_ids: Optional[Sequence[str]] = None, limit: Optional[int] = None) → List[str]

    Asynchronously list records in the database based on the provided filters.

    Parameters

      - before (Optional[float]) – Filter to list records updated before this time.

      - after (Optional[float]) – Filter to list records updated after this time.

      - group_ids (Optional[Sequence[str]]) – Filter to list records with specific group IDs.

      - limit (Optional[int]) – optional limit on the number of records to return.

    Returns

      A list of keys for the matching records.

    Return type

      List[str]

  abstract async aupdate(keys: Sequence[str], *, group_ids: Optional[Sequence[Optional[str]]] = None, time_at_least: Optional[float] = None) → None

    Asynchronously upsert records into the database.

    Parameters

      - keys (Sequence[str]) – A list of record keys to upsert.

      - group_ids (Optional[Sequence[Optional[str]]]) – A list of group IDs corresponding to the keys.

      - time_at_least (Optional[float]) –

        Optional timestamp. Implementation can use this to optionally verify that the timestamp IS at least this time in the system that stores the data.

        e.g., use to validate that the time in the postgres database is equal to or larger than the given timestamp, if not raise an error.

        This is meant to help prevent time-drift issues since time may not be monotonically increasing!

    Raises

      ValueError – If the length of keys doesn’t match the length of group_ids.

    Return type

      None

  abstract create_schema() → None

    Create the database schema for the record manager.

    Return type

      None

  abstract delete_keys(keys: Sequence[str]) → None

    Delete specified records from the database.

    Parameters

      keys (Sequence[str]) – A list of keys to delete.

    Return type

      None

  abstract exists(keys: Sequence[str]) → List[bool]

    Check if the provided keys exist in the database.

    Parameters

      keys (Sequence[str]) – A list of keys to check.

    Returns

      A list of boolean values indicating the existence of each key.

    Return type

      List[bool]

  abstract get_time() → float

    Get the current server time as a high resolution timestamp!

    It’s important to get this from the server to ensure a monotonic clock, otherwise there may be data loss when cleaning up old documents!

    Returns

      The current server time as a float timestamp.

    Return type

      float

  abstract list_keys(*, before: Optional[float] = None, after: Optional[float] = None, group_ids: Optional[Sequence[str]] = None, limit: Optional[int] = None) → List[str]

    List records in the database based on the provided filters.

    Parameters

      - before (Optional[float]) – Filter to list records updated before this time.

      - after (Optional[float]) – Filter to list records updated after this time.

      - group_ids (Optional[Sequence[str]]) – Filter to list records with specific group IDs.

      - limit (Optional[int]) – optional limit on the number of records to return.

    Returns

      A list of keys for the matching records.

    Return type

      List[str]

  abstract update(keys: Sequence[str], *, group_ids: Optional[Sequence[Optional[str]]] = None, time_at_least: Optional[float] = None) → None

    Upsert records into the database.

    Parameters

      - keys (Sequence[str]) – A list of record keys to upsert.

      - group_ids (Optional[Sequence[Optional[str]]]) – A list of group IDs corresponding to the keys.

      - time_at_least (Optional[float]) –

        Optional timestamp. Implementation can use this to optionally verify that the timestamp IS at least this time in the system that stores the data.

        e.g., use to validate that the time in the postgres database is equal to or larger than the given timestamp, if not raise an error.

        This is meant to help prevent time-drift issues since time may not be monotonically increasing!

    Raises

      ValueError – If the length of keys doesn’t match the length of group_ids.

    Return type

      None