langchain.indexes.base.RecordManager¶

class langchain.indexes.base.RecordManager(namespace: str)[source]¶

An 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()

Create the database schema for the record manager.

adelete_keys(keys)

Delete specified records from the database.

aexists(keys)

Check if the provided keys exist in the database.

aget_time()

Get the current server time as a high resolution timestamp!

alist_keys(*[, before, after, group_ids, limit])

List records in the database based on the provided filters.

aupdate(keys, *[, group_ids, time_at_least])

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[source]¶

Initialize the record manager.

Parameters

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

Return type

None

abstract async acreate_schema() None[source]¶

Create the database schema for the record manager.

Return type

None

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

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][source]¶

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[source]¶

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][source]¶

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[source]¶

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]) – if provided, updates should only happen if the updated_at field is at least this time.

Raises

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

Return type

None

abstract create_schema() None[source]¶

Create the database schema for the record manager.

Return type

None

abstract delete_keys(keys: Sequence[str]) None[source]¶

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][source]¶

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[source]¶

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][source]¶

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[source]¶

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]) – if provided, updates should only happen if the updated_at field is at least this time.

Raises

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

Return type

None