Skip to main content

Parameters

ParameterTypeDefaultDescription
sessions_table_namestrRequiredThe name of the table for InteractionSession storage
profiles_table_namestrRequiredThe name of the table for UserProfile storage
db_urlstrRequiredAn asyncpg-compatible database URL (e.g., “postgresql://user:pass@host:port/db”)
schemastr"public"The PostgreSQL schema to use for the tables

Functions

is_connected

Check if the storage provider is connected. Returns:
  • bool: True if connected, False otherwise

connect

Connect to the storage provider.

disconnect

Disconnect from the storage provider.

create

Create the necessary tables for storage.

read

Read an object from storage by ID and model type. Parameters:
  • object_id (str): The unique identifier of the object
  • model_type (Type[T]): The Pydantic model type to deserialize to
Returns:
  • Optional[T]: The deserialized object or None if not found

upsert

Insert or update an object in storage. Parameters:
  • data (Union[InteractionSession, UserProfile]): The object to store

delete

Delete an object from storage by ID and model type. Parameters:
  • object_id (str): The unique identifier of the object
  • model_type (Type[BaseModel]): The model type to delete

drop

Drop all data from storage (delete all tables).

is_connected_async

Asynchronously check if the storage provider is connected. Returns:
  • bool: True if connected, False otherwise

connect_async

Asynchronously connect to the storage provider.

disconnect_async

Asynchronously disconnect from the storage provider.

create_async

Asynchronously create the necessary tables for storage.

read_async

Asynchronously read an object from storage by ID and model type. Parameters:
  • object_id (str): The unique identifier of the object
  • model_type (Type[T]): The Pydantic model type to deserialize to
Returns:
  • Optional[T]: The deserialized object or None if not found

upsert_async

Asynchronously insert or update an object in storage. Parameters:
  • data (Union[InteractionSession, UserProfile]): The object to store

delete_async

Asynchronously delete an object from storage by ID and model type. Parameters:
  • object_id (str): The unique identifier of the object
  • model_type (Type[BaseModel]): The model type to delete

drop_async

Asynchronously drop all data from storage (delete all tables).

_get_pool

Helper to lazily initialize the connection pool. Returns:
  • asyncpg.Pool: The connection pool
I