langchain_community.vectorstores.docarray.hnsw.DocArrayHnswSearch¶
- class langchain_community.vectorstores.docarray.hnsw.DocArrayHnswSearch(doc_index: BaseDocIndex, embedding: Embeddings)[source]¶
- HnswLib storage using DocArray package. - To use it, you should have the - docarraypackage with version >=0.32.0 installed. You can install it with pip install “langchain[docarray]”.- Initialize a vector store from DocArray’s DocIndex. - Attributes - doc_cls- embeddings- Access the query embedding object if available. - Methods - __init__(doc_index, embedding)- Initialize a vector store from DocArray's DocIndex. - 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])- Embed texts and add to the vector store. - 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. - 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. - Return docs and relevance scores in the range [0, 1], asynchronously. - asimilarity_search_with_score(*args, **kwargs)- Run similarity search with distance asynchronously. - delete([ids])- Delete by vector ID or other criteria. - from_documents(documents, embedding, **kwargs)- Return VectorStore initialized from documents and embeddings. - from_params(embedding, work_dir, n_dim[, ...])- Initialize DocArrayHnswSearch store. - from_texts(texts, embedding[, metadatas, ...])- Create an DocArrayHnswSearch store and insert data. - max_marginal_relevance_search(query[, k, ...])- Return docs selected using the maximal marginal relevance. - 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. - Return docs and relevance scores in the range [0, 1]. - similarity_search_with_score(query[, k])- Return docs most similar to query. - Parameters
- doc_index (BaseDocIndex) – 
- embedding (Embeddings) – 
 
 - __init__(doc_index: BaseDocIndex, embedding: Embeddings)¶
- Initialize a vector store from DocArray’s DocIndex. - Parameters
- doc_index (BaseDocIndex) – 
- embedding (Embeddings) – 
 
 
 - 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. 
- documents (List[Document]) – 
- kwargs (Any) – 
 
- 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. - Parameters
- texts (Iterable[str]) – 
- metadatas (Optional[List[dict]]) – 
- kwargs (Any) – 
 
- Return type
- List[str] 
 
 - 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. 
- documents (List[Document]) – 
- kwargs (Any) – 
 
- Returns
- List of IDs of the added texts. 
- Return type
- List[str] 
 
 - add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str]¶
- Embed texts and add to the vector store. - Parameters
- texts (Iterable[str]) – Iterable of strings to add to the vectorstore. 
- metadatas (Optional[List[dict]]) – Optional list of metadatas associated with the texts. 
- kwargs (Any) – 
 
- Returns
- List of ids from adding the texts into the vectorstore. 
- Return type
- List[str] 
 
 - async adelete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool]¶
- Delete by vector ID or other criteria. - Parameters
- ids (Optional[List[str]]) – List of ids to delete. 
- **kwargs (Any) – 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. - Parameters
- documents (List[Document]) – 
- embedding (Embeddings) – 
- kwargs (Any) – 
 
- Return type
- VST 
 
 - async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST¶
- Return VectorStore initialized from texts and embeddings. - Parameters
- texts (List[str]) – 
- embedding (Embeddings) – 
- metadatas (Optional[List[dict]]) – 
- kwargs (Any) – 
 
- Return type
- VST 
 
 - async amax_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]¶
- Return docs selected using the maximal marginal relevance. - Parameters
- query (str) – 
- k (int) – 
- fetch_k (int) – 
- lambda_mult (float) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - 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. - Parameters
- embedding (List[float]) – 
- k (int) – 
- fetch_k (int) – 
- lambda_mult (float) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - 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 
- kwargs (Any) – 
 
- Returns
- Retriever class for VectorStore. 
- Return type
 - 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. - Parameters
- query (str) – 
- search_type (str) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - async asimilarity_search(query: str, k: int = 4, **kwargs: Any) List[Document]¶
- Return docs most similar to query. - Parameters
- query (str) – 
- k (int) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]¶
- Return docs most similar to embedding vector. - Parameters
- embedding (List[float]) – 
- k (int) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - 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 (str) – input text 
- k (int) – Number of Documents to return. Defaults to 4. 
- **kwargs (Any) – - 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) 
- Return type
- List[Tuple[Document, float]] 
 
 - async asimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]¶
- Run similarity search with distance asynchronously. - Parameters
- args (Any) – 
- kwargs (Any) – 
 
- Return type
- List[Tuple[Document, float]] 
 
 - delete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool]¶
- Delete by vector ID or other criteria. - Parameters
- ids (Optional[List[str]]) – List of ids to delete. 
- **kwargs (Any) – 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: Embeddings, **kwargs: Any) VST¶
- Return VectorStore initialized from documents and embeddings. - Parameters
- documents (List[Document]) – 
- embedding (Embeddings) – 
- kwargs (Any) – 
 
- Return type
- VST 
 
 - classmethod from_params(embedding: Embeddings, work_dir: str, n_dim: int, dist_metric: Literal['cosine', 'ip', 'l2'] = 'cosine', max_elements: int = 1024, index: bool = True, ef_construction: int = 200, ef: int = 10, M: int = 16, allow_replace_deleted: bool = True, num_threads: int = 1, **kwargs: Any) DocArrayHnswSearch[source]¶
- Initialize DocArrayHnswSearch store. - Parameters
- embedding (Embeddings) – Embedding function. 
- work_dir (str) – path to the location where all the data will be stored. 
- n_dim (int) – dimension of an embedding. 
- dist_metric (str) – Distance metric for DocArrayHnswSearch can be one of: “cosine”, “ip”, and “l2”. Defaults to “cosine”. 
- max_elements (int) – Maximum number of vectors that can be stored. Defaults to 1024. 
- index (bool) – Whether an index should be built for this field. Defaults to True. 
- ef_construction (int) – defines a construction time/accuracy trade-off. Defaults to 200. 
- ef (int) – parameter controlling query time/accuracy trade-off. Defaults to 10. 
- M (int) – parameter that defines the maximum number of outgoing connections in the graph. Defaults to 16. 
- allow_replace_deleted (bool) – Enables replacing of deleted elements with new added ones. Defaults to True. 
- num_threads (int) – Sets the number of cpu threads to use. Defaults to 1. 
- **kwargs – Other keyword arguments to be passed to the get_doc_cls method. 
 
- Return type
 
 - classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, work_dir: Optional[str] = None, n_dim: Optional[int] = None, **kwargs: Any) DocArrayHnswSearch[source]¶
- Create an DocArrayHnswSearch store and insert data. - Parameters
- texts (List[str]) – Text data. 
- embedding (Embeddings) – Embedding function. 
- metadatas (Optional[List[dict]]) – Metadata for each text if it exists. Defaults to None. 
- work_dir (str) – path to the location where all the data will be stored. 
- n_dim (int) – dimension of an embedding. 
- **kwargs – Other keyword arguments to be passed to the __init__ method. 
 
- Returns
- DocArrayHnswSearch Vector Store 
- Return type
 
 - max_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]¶
- Return docs selected using the maximal marginal relevance. - Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents. - Parameters
- query (str) – Text to look up documents similar to. 
- k (int) – Number of Documents to return. Defaults to 4. 
- fetch_k (int) – Number of Documents to fetch to pass to MMR algorithm. 
- lambda_mult (float) – 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. 
- kwargs (Any) – 
 
- Returns
- List of Documents selected by maximal marginal relevance. 
- Return type
- List[Document] 
 
 - max_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. - Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents. - Parameters
- embedding (List[float]) – Embedding to look up documents similar to. 
- k (int) – Number of Documents to return. Defaults to 4. 
- fetch_k (int) – Number of Documents to fetch to pass to MMR algorithm. 
- lambda_mult (float) – 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. 
- kwargs (Any) – 
 
- Returns
- List of Documents selected by maximal marginal relevance. 
- Return type
- List[Document] 
 
 - search(query: str, search_type: str, **kwargs: Any) List[Document]¶
- Return docs most similar to query using specified search type. - Parameters
- query (str) – 
- search_type (str) – 
- kwargs (Any) – 
 
- Return type
- List[Document] 
 
 - similarity_search(query: str, k: int = 4, **kwargs: Any) List[Document]¶
- Return docs most similar to query. - Parameters
- query (str) – Text to look up documents similar to. 
- k (int) – Number of Documents to return. Defaults to 4. 
- kwargs (Any) – 
 
- Returns
- List of Documents most similar to the query. 
- Return type
- List[Document] 
 
 - similarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]¶
- Return docs most similar to embedding vector. - Parameters
- embedding (List[float]) – Embedding to look up documents similar to. 
- k (int) – Number of Documents to return. Defaults to 4. 
- kwargs (Any) – 
 
- Returns
- List of Documents most similar to the query vector. 
- Return type
- List[Document] 
 
 - 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 (str) – input text 
- k (int) – Number of Documents to return. Defaults to 4. 
- **kwargs (Any) – - 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) 
- Return type
- List[Tuple[Document, float]] 
 
 - similarity_search_with_score(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]¶
- Return docs most similar to query. - Parameters
- query (str) – Text to look up documents similar to. 
- k (int) – Number of Documents to return. Defaults to 4. 
- kwargs (Any) – 
 
- Returns
- List of documents most similar to the query text and cosine distance in float for each. Lower score represents more similarity. 
- Return type
- List[Tuple[Document, float]]