langchain.vectorstores.awadb.AwaDB

class langchain.vectorstores.awadb.AwaDB(table_name: str = 'langchain_awadb', embedding: Optional[Embeddings] = None, log_and_data_dir: Optional[str] = None, client: Optional[awadb.Client] = None, **kwargs: Any)[source]

AwaDB vector store.

Initialize with AwaDB client.

If table_name is not specified, a random table name of _DEFAULT_TABLE_NAME + last segment of uuid would be created automatically.

Parameters
  • table_name – Name of the table created, default _DEFAULT_TABLE_NAME.

  • embedding – Optional Embeddings initially set.

  • log_and_data_dir – Optional the root directory of log and data.

  • client – Optional AwaDB client.

  • kwargs – Any possible extend parameters in the future.

Returns

None.

Attributes

embeddings

Access the query embedding object if available.

Methods

__init__([table_name, embedding, ...])

Initialize with AwaDB client.

aadd_documents(documents, **kwargs)

Run more documents through the embeddings and add to the vectorstore.

aadd_texts(texts[, metadatas])

Run more texts through the embeddings and add to the vectorstore.

add_documents(documents, **kwargs)

Run more documents through the embeddings and add to the vectorstore.

add_texts(texts[, metadatas, is_duplicate_texts])

Run more texts through the embeddings and add to the vectorstore.

adelete([ids])

Delete by vector ID or other criteria.

afrom_documents(documents, embedding, **kwargs)

Return VectorStore initialized from documents and embeddings.

afrom_texts(texts, embedding[, metadatas])

Return VectorStore initialized from texts and embeddings.

amax_marginal_relevance_search(query[, k, ...])

Return docs selected using the maximal marginal relevance.

amax_marginal_relevance_search_by_vector(...)

Return docs selected using the maximal marginal relevance.

as_retriever(**kwargs)

Return VectorStoreRetriever initialized from this VectorStore.

asearch(query, search_type, **kwargs)

Return docs most similar to query using specified search type.

asimilarity_search(query[, k])

Return docs most similar to query.

asimilarity_search_by_vector(embedding[, k])

Return docs most similar to embedding vector.

asimilarity_search_with_relevance_scores(query)

Return docs and relevance scores in the range [0, 1], asynchronously.

asimilarity_search_with_score(*args, **kwargs)

Run similarity search with distance asynchronously.

create_table(table_name, **kwargs)

Create a new table.

delete([ids])

Delete the documents which have the specified ids.

from_documents(documents[, embedding, ...])

Create an AwaDB vectorstore from a list of documents.

from_texts(texts[, embedding, metadatas, ...])

Create an AwaDB vectorstore from a raw documents.

get([ids, text_in_page_content, ...])

Return docs according ids.

get_current_table(**kwargs)

Get the current table.

list_tables(**kwargs)

List all the tables created by the client.

load_local(table_name, **kwargs)

Load the local specified table.

max_marginal_relevance_search(query[, k, ...])

Return docs selected using the maximal marginal relevance.

max_marginal_relevance_search_by_vector(...)

Return docs selected using the maximal marginal relevance.

search(query, search_type, **kwargs)

Return docs most similar to query using specified search type.

similarity_search(query[, k, ...])

Return docs most similar to query.

similarity_search_by_vector([embedding, k, ...])

Return docs most similar to embedding vector.

similarity_search_with_relevance_scores(query)

Return docs and relevance scores in the range [0, 1].

similarity_search_with_score(query[, k, ...])

The most k similar documents and scores of the specified query.

update(ids, texts[, metadatas])

Update the documents which have the specified ids.

use(table_name, **kwargs)

Use the specified table.

__init__(table_name: str = 'langchain_awadb', embedding: Optional[Embeddings] = None, log_and_data_dir: Optional[str] = None, client: Optional[awadb.Client] = None, **kwargs: Any) None[source]
Initialize with AwaDB client.

If table_name is not specified, a random table name of _DEFAULT_TABLE_NAME + last segment of uuid would be created automatically.

Parameters
  • table_name – Name of the table created, default _DEFAULT_TABLE_NAME.

  • embedding – Optional Embeddings initially set.

  • log_and_data_dir – Optional the root directory of log and data.

  • client – Optional AwaDB client.

  • kwargs – Any possible extend parameters in the future.

Returns

None.

async aadd_documents(documents: List[Document], **kwargs: Any) List[str]

Run more documents through the embeddings and add to the vectorstore.

Parameters

(List[Document] (documents) – Documents to add to the vectorstore.

Returns

List of IDs of the added texts.

Return type

List[str]

async aadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str]

Run more texts through the embeddings and add to the vectorstore.

add_documents(documents: List[Document], **kwargs: Any) List[str]

Run more documents through the embeddings and add to the vectorstore.

Parameters

(List[Document] (documents) – Documents to add to the vectorstore.

Returns

List of IDs of the added texts.

Return type

List[str]

add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, is_duplicate_texts: Optional[bool] = None, **kwargs: Any) List[str][source]

Run more texts through the embeddings and add to the vectorstore. :param texts: Iterable of strings to add to the vectorstore. :param metadatas: Optional list of metadatas associated with the texts. :param is_duplicate_texts: Optional whether to duplicate texts. Defaults to True. :param kwargs: any possible extend parameters in the future.

Returns

List of ids from adding the texts into the vectorstore.

async adelete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool]

Delete by vector ID or other criteria.

Parameters
  • ids – List of ids to delete.

  • **kwargs – Other keyword arguments that subclasses might use.

Returns

True if deletion is successful, False otherwise, None if not implemented.

Return type

Optional[bool]

async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST

Return VectorStore initialized from documents and embeddings.

async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST

Return VectorStore initialized from texts and embeddings.

Return docs selected using the maximal marginal relevance.

async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]

Return docs selected using the maximal marginal relevance.

as_retriever(**kwargs: Any) VectorStoreRetriever

Return VectorStoreRetriever initialized from this VectorStore.

Parameters
  • search_type (Optional[str]) – Defines the type of search that the Retriever should perform. Can be “similarity” (default), “mmr”, or “similarity_score_threshold”.

  • search_kwargs (Optional[Dict]) –

    Keyword arguments to pass to the search function. Can include things like:

    k: Amount of documents to return (Default: 4) score_threshold: Minimum relevance threshold

    for similarity_score_threshold

    fetch_k: Amount of documents to pass to MMR algorithm (Default: 20) lambda_mult: Diversity of results returned by MMR;

    1 for minimum diversity and 0 for maximum. (Default: 0.5)

    filter: Filter by document metadata

Returns

Retriever class for VectorStore.

Return type

VectorStoreRetriever

Examples:

# Retrieve more documents with higher diversity
# Useful if your dataset has many similar documents
docsearch.as_retriever(
    search_type="mmr",
    search_kwargs={'k': 6, 'lambda_mult': 0.25}
)

# Fetch more documents for the MMR algorithm to consider
# But only return the top 5
docsearch.as_retriever(
    search_type="mmr",
    search_kwargs={'k': 5, 'fetch_k': 50}
)

# Only retrieve documents that have a relevance score
# Above a certain threshold
docsearch.as_retriever(
    search_type="similarity_score_threshold",
    search_kwargs={'score_threshold': 0.8}
)

# Only get the single most similar document from the dataset
docsearch.as_retriever(search_kwargs={'k': 1})

# Use a filter to only retrieve documents from a specific paper
docsearch.as_retriever(
    search_kwargs={'filter': {'paper_title':'GPT-4 Technical Report'}}
)
async asearch(query: str, search_type: str, **kwargs: Any) List[Document]

Return docs most similar to query using specified search type.

Return docs most similar to query.

async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]

Return docs most similar to embedding vector.

async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

Return docs and relevance scores in the range [0, 1], asynchronously.

0 is dissimilar, 1 is most similar.

Parameters
  • query – input text

  • k – Number of Documents to return. Defaults to 4.

  • **kwargs

    kwargs to be passed to similarity search. Should include: score_threshold: Optional, a floating point value between 0 to 1 to

    filter the resulting set of retrieved docs

Returns

List of Tuples of (doc, similarity_score)

async asimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]

Run similarity search with distance asynchronously.

create_table(table_name: str, **kwargs: Any) bool[source]

Create a new table.

delete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool][source]

Delete the documents which have the specified ids.

Parameters
  • ids – The ids of the embedding vectors.

  • **kwargs – Other keyword arguments that subclasses might use.

Returns

True if deletion is successful. False otherwise, None if not implemented.

Return type

Optional[bool]

classmethod from_documents(documents: List[Document], embedding: Optional[Embeddings] = None, table_name: str = 'langchain_awadb', log_and_data_dir: Optional[str] = None, client: Optional[awadb.Client] = None, **kwargs: Any) AwaDB[source]

Create an AwaDB vectorstore from a list of documents.

If a log_and_data_dir specified, the table will be persisted there.

Parameters
  • documents (List[Document]) – List of documents to add to the vectorstore.

  • embedding (Optional[Embeddings]) – Embedding function. Defaults to None.

  • table_name (str) – Name of the table to create.

  • log_and_data_dir (Optional[str]) – Directory to persist the table.

  • client (Optional[awadb.Client]) – AwaDB client.

  • Any – Any possible parameters in the future

Returns

AwaDB vectorstore.

Return type

AwaDB

classmethod from_texts(texts: List[str], embedding: Optional[Embeddings] = None, metadatas: Optional[List[dict]] = None, table_name: str = 'langchain_awadb', log_and_data_dir: Optional[str] = None, client: Optional[awadb.Client] = None, **kwargs: Any) AwaDB[source]

Create an AwaDB vectorstore from a raw documents.

Parameters
  • texts (List[str]) – List of texts to add to the table.

  • embedding (Optional[Embeddings]) – Embedding function. Defaults to None.

  • metadatas (Optional[List[dict]]) – List of metadatas. Defaults to None.

  • table_name (str) – Name of the table to create.

  • log_and_data_dir (Optional[str]) – Directory of logging and persistence.

  • client (Optional[awadb.Client]) – AwaDB client

Returns

AwaDB vectorstore.

Return type

AwaDB

get(ids: Optional[List[str]] = None, text_in_page_content: Optional[str] = None, meta_filter: Optional[dict] = None, not_include_fields: Optional[Set[str]] = None, limit: Optional[int] = None, **kwargs: Any) Dict[str, Document][source]

Return docs according ids.

Parameters
  • ids – The ids of the embedding vectors.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter – Filter by any metadata of the document.

  • not_include_fields – Not pack the specified fields of each document.

  • limit – The number of documents to return. Defaults to 5. Optional.

Returns

Documents which satisfy the input conditions.

get_current_table(**kwargs: Any) str[source]

Get the current table.

list_tables(**kwargs: Any) List[str][source]

List all the tables created by the client.

load_local(table_name: str, **kwargs: Any) bool[source]

Load the local specified table.

Parameters
  • table_name – Table name

  • kwargs – Any possible extend parameters in the future.

Returns

Success or failure of loading the local specified table

Return docs selected using the maximal marginal relevance.

Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.

Parameters
  • query – Text to look up documents similar to.

  • k – Number of Documents to return. Defaults to 4.

  • fetch_k – Number of Documents to fetch to pass to MMR algorithm.

  • lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter (Optional[dict]) – Filter by metadata. Defaults to None.

Returns

List of Documents selected by maximal marginal relevance.

max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, text_in_page_content: Optional[str] = None, meta_filter: Optional[dict] = None, **kwargs: Any) List[Document][source]

Return docs selected using the maximal marginal relevance.

Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.

Parameters
  • embedding – Embedding to look up documents similar to.

  • k – Number of Documents to return. Defaults to 4.

  • fetch_k – Number of Documents to fetch to pass to MMR algorithm.

  • lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter (Optional[dict]) – Filter by metadata. Defaults to None.

Returns

List of Documents selected by maximal marginal relevance.

search(query: str, search_type: str, **kwargs: Any) List[Document]

Return docs most similar to query using specified search type.

Return docs most similar to query.

Parameters
  • query – Text query.

  • k – The maximum number of documents to return.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter (Optional[dict]) – Filter by metadata. Defaults to None.

  • `{"color" (E.g.) –

    ”red”, “price”: 4.20}`. Optional.

  • `{"max_price" (E.g.) –

    15.66, “min_price”: 4.20}`

  • field (price is the metadata) –

  • filter (means range) –

  • `{"maxe_price" (E.g.) –

    15.66, “mine_price”: 4.20}`

  • field

  • filter

  • kwargs – Any possible extend parameters in the future.

Returns

Returns the k most similar documents to the specified text query.

similarity_search_by_vector(embedding: Optional[List[float]] = None, k: int = 4, text_in_page_content: Optional[str] = None, meta_filter: Optional[dict] = None, not_include_fields_in_metadata: Optional[Set[str]] = None, **kwargs: Any) List[Document][source]

Return docs most similar to embedding vector.

Parameters
  • embedding – Embedding to look up documents similar to.

  • k – Number of Documents to return. Defaults to 4.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter – Filter by metadata. Defaults to None.

  • not_incude_fields_in_metadata – Not include meta fields of each document.

Returns

List of Documents which are the most similar to the query vector.

similarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

Return docs and relevance scores in the range [0, 1].

0 is dissimilar, 1 is most similar.

Parameters
  • query – input text

  • k – Number of Documents to return. Defaults to 4.

  • **kwargs

    kwargs to be passed to similarity search. Should include: score_threshold: Optional, a floating point value between 0 to 1 to

    filter the resulting set of retrieved docs

Returns

List of Tuples of (doc, similarity_score)

similarity_search_with_score(query: str, k: int = 4, text_in_page_content: Optional[str] = None, meta_filter: Optional[dict] = None, **kwargs: Any) List[Tuple[Document, float]][source]

The most k similar documents and scores of the specified query.

Parameters
  • query – Text query.

  • k – The k most similar documents to the text query.

  • text_in_page_content – Filter by the text in page_content of Document.

  • meta_filter – Filter by metadata. Defaults to None.

  • kwargs – Any possible extend parameters in the future.

Returns

The k most similar documents to the specified text query. 0 is dissimilar, 1 is the most similar.

update(ids: List[str], texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str][source]

Update the documents which have the specified ids.

Parameters
  • ids – The id list of the updating embedding vector.

  • texts – The texts of the updating documents.

  • metadatas – The metadatas of the updating documents.

Returns

the ids of the updated documents.

use(table_name: str, **kwargs: Any) bool[source]

Use the specified table. Don’t know the tables, please invoke list_tables.

Examples using AwaDB