Enum to map the metric to PostgreSQL vector operators.
inner product
L2 distance
L1 distance
Parses a vector from a string or other representation.
Arguments:
vector_str
(Union[str, Any]
): The string or object representation of a vector.Returns:
List[float]
: A list of floats representing the vector.
Cleans and formats the route name by stripping spaces and replacing them with hyphens.
Arguments:
route_name
(str
): The original route name.Returns:
str
: The cleaned and formatted route name.
Model to represent a record in the Postgres index.
Initializes a new Postgres index record with given data.
Arguments:
data
(dict
): Field values for the record.Converts the record to a dictionary.
Returns:
Dict
: A dictionary representation of the record.
Postgres implementation of Index.
Initializes the Postgres index with the specified parameters.
Arguments:
connection_string
(Optional[str]
): The connection string for the PostgreSQL database.index_prefix
(str
): The prefix for the index table name.index_name
(str
): The name of the index table.dimensions
(int
): The number of dimensions for the vectors.metric
(Metric
): The metric used for vector comparisons.Optional[str]
0 (Optional[str]
): An optional namespace for the index.Optional[str]
2 (Optional[str]
3): Whether to initialize the index asynchronously.Sets up the index by creating the table and vector extension if they do not exist.
Raises:
ValueError
: If the existing table’s vector dimensions do not match the expected dimensions.TypeError
: If the database connection is not established.Adds records to the index.
Arguments:
embeddings
(List[List[float]]
): A list of vector embeddings to add.routes
(List[str]
): A list of route names corresponding to the embeddings.utterances
(List[Any]
): A list of utterances corresponding to the embeddings.function_schemas
(Optional[List[Dict[str, Any]]]
): A list of function schemas corresponding to the embeddings.metadata_list
(List[Dict[str, Any]]
): A list of metadata corresponding to the embeddings.Raises:
List[List[float]]
0: If the vector embeddings being added do not match the expected dimensions.List[List[float]]
1: If the database connection is not established.Asynchronously adds records to the index in batches.
Arguments:
embeddings
: A list of vector embeddings to add.routes
: A list of route names corresponding to the embeddings.utterances
: A list of utterances corresponding to the embeddings.function_schemas
: (Optional) List of function schemas.metadata_list
: (Optional) List of metadata dictionaries.batch_size
: Number of records per batch insert.Raises:
ValueError
: If the vector embeddings don’t match expected dimensions.TypeError
: If connection is not an async Postgres connection.Deletes records with the specified route name.
Arguments:
route_name
(str
): The name of the route to delete records for.Raises:
TypeError
: If the database connection is not established.Asynchronously delete specified route from index if it exists. Returns the IDs
of the vectors deleted.
Arguments:
route_name
(str
): Name of the route to delete.Returns:
list[str]
: List of IDs of the vectors deleted.
Describes the index by returning its type, dimensions, and total vector count.
Returns:
IndexConfig
: An IndexConfig object containing the index’s type, dimensions, and total vector count.
Checks if the index is ready to be used.
Returns:
bool
: True if the index is ready, False otherwise.
Checks if the index is ready to be used.
Returns:
bool
: True if the index is ready, False otherwise.
Searches the index for the query vector and returns the top_k results.
Arguments:
vector
(np.ndarray
): The query vector.top_k
(int
): The number of top results to return.route_filter
(Optional[List[str]]
): Optional list of routes to filter the results by.sparse_vector
(dict[int, float] | SparseEmbedding | None
): Optional sparse vector to filter the results by.Raises:
TypeError
: If the database connection is not established.Returns:
Tuple[np.ndarray, List[str]]
: A tuple containing the scores and routes of the top_k results.
Asynchronously search the index for the query vector and return the top_k results.
Arguments:
vector
(np.ndarray
): The query vector to search for.top_k
(int, optional
): The number of top results to return, defaults to 5.route_filter
(Optional[List[str]], optional
): A list of route names to filter the search results, defaults to None.sparse_vector
(dict[int, float] | SparseEmbedding | None
): An optional sparse vector to include in the query.Raises:
TypeError
: If the database connection is not established.Returns:
Tuple[np.ndarray, List[str]]
: A tuple containing an array of scores and a list of route names.
Deletes all records from the Postgres index.
Raises:
TypeError
: If the database connection is not established.Deletes the entire table for the index.
Raises:
TypeError
: If the database connection is not established.Asynchronously delete the entire table for the index.
Raises:
TypeError
: If the async database connection is not established.Asynchronously get a list of route and utterance objects currently
stored in the index.
Raises:
TypeError
: If the database connection is not established.Returns:
List[Tuple]
: A list of (route_name, utterance) objects.
Returns the total number of vectors in the index. If the index is not initialized
returns 0.
Returns:
The total number of vectors.
Async version of len. Returns the total number of vectors in the index.
Returns:
int
: The total number of vectors.
Closes the psycopg connection if it exists.
Returns True if there is an active and valid psycopg connection, otherwise False.
Enum to map the metric to PostgreSQL vector operators.
inner product
L2 distance
L1 distance
Parses a vector from a string or other representation.
Arguments:
vector_str
(Union[str, Any]
): The string or object representation of a vector.Returns:
List[float]
: A list of floats representing the vector.
Cleans and formats the route name by stripping spaces and replacing them with hyphens.
Arguments:
route_name
(str
): The original route name.Returns:
str
: The cleaned and formatted route name.
Model to represent a record in the Postgres index.
Initializes a new Postgres index record with given data.
Arguments:
data
(dict
): Field values for the record.Converts the record to a dictionary.
Returns:
Dict
: A dictionary representation of the record.
Postgres implementation of Index.
Initializes the Postgres index with the specified parameters.
Arguments:
connection_string
(Optional[str]
): The connection string for the PostgreSQL database.index_prefix
(str
): The prefix for the index table name.index_name
(str
): The name of the index table.dimensions
(int
): The number of dimensions for the vectors.metric
(Metric
): The metric used for vector comparisons.Optional[str]
0 (Optional[str]
): An optional namespace for the index.Optional[str]
2 (Optional[str]
3): Whether to initialize the index asynchronously.Sets up the index by creating the table and vector extension if they do not exist.
Raises:
ValueError
: If the existing table’s vector dimensions do not match the expected dimensions.TypeError
: If the database connection is not established.Adds records to the index.
Arguments:
embeddings
(List[List[float]]
): A list of vector embeddings to add.routes
(List[str]
): A list of route names corresponding to the embeddings.utterances
(List[Any]
): A list of utterances corresponding to the embeddings.function_schemas
(Optional[List[Dict[str, Any]]]
): A list of function schemas corresponding to the embeddings.metadata_list
(List[Dict[str, Any]]
): A list of metadata corresponding to the embeddings.Raises:
List[List[float]]
0: If the vector embeddings being added do not match the expected dimensions.List[List[float]]
1: If the database connection is not established.Asynchronously adds records to the index in batches.
Arguments:
embeddings
: A list of vector embeddings to add.routes
: A list of route names corresponding to the embeddings.utterances
: A list of utterances corresponding to the embeddings.function_schemas
: (Optional) List of function schemas.metadata_list
: (Optional) List of metadata dictionaries.batch_size
: Number of records per batch insert.Raises:
ValueError
: If the vector embeddings don’t match expected dimensions.TypeError
: If connection is not an async Postgres connection.Deletes records with the specified route name.
Arguments:
route_name
(str
): The name of the route to delete records for.Raises:
TypeError
: If the database connection is not established.Asynchronously delete specified route from index if it exists. Returns the IDs
of the vectors deleted.
Arguments:
route_name
(str
): Name of the route to delete.Returns:
list[str]
: List of IDs of the vectors deleted.
Describes the index by returning its type, dimensions, and total vector count.
Returns:
IndexConfig
: An IndexConfig object containing the index’s type, dimensions, and total vector count.
Checks if the index is ready to be used.
Returns:
bool
: True if the index is ready, False otherwise.
Checks if the index is ready to be used.
Returns:
bool
: True if the index is ready, False otherwise.
Searches the index for the query vector and returns the top_k results.
Arguments:
vector
(np.ndarray
): The query vector.top_k
(int
): The number of top results to return.route_filter
(Optional[List[str]]
): Optional list of routes to filter the results by.sparse_vector
(dict[int, float] | SparseEmbedding | None
): Optional sparse vector to filter the results by.Raises:
TypeError
: If the database connection is not established.Returns:
Tuple[np.ndarray, List[str]]
: A tuple containing the scores and routes of the top_k results.
Asynchronously search the index for the query vector and return the top_k results.
Arguments:
vector
(np.ndarray
): The query vector to search for.top_k
(int, optional
): The number of top results to return, defaults to 5.route_filter
(Optional[List[str]], optional
): A list of route names to filter the search results, defaults to None.sparse_vector
(dict[int, float] | SparseEmbedding | None
): An optional sparse vector to include in the query.Raises:
TypeError
: If the database connection is not established.Returns:
Tuple[np.ndarray, List[str]]
: A tuple containing an array of scores and a list of route names.
Deletes all records from the Postgres index.
Raises:
TypeError
: If the database connection is not established.Deletes the entire table for the index.
Raises:
TypeError
: If the database connection is not established.Asynchronously delete the entire table for the index.
Raises:
TypeError
: If the async database connection is not established.Asynchronously get a list of route and utterance objects currently
stored in the index.
Raises:
TypeError
: If the database connection is not established.Returns:
List[Tuple]
: A list of (route_name, utterance) objects.
Returns the total number of vectors in the index. If the index is not initialized
returns 0.
Returns:
The total number of vectors.
Async version of len. Returns the total number of vectors in the index.
Returns:
int
: The total number of vectors.
Closes the psycopg connection if it exists.
Returns True if there is an active and valid psycopg connection, otherwise False.