Abstract class representing a vector storage system for performing similarity searches on embedded documents.

VectorStore provides methods for adding precomputed vectors or documents, removing documents based on criteria, and performing similarity searches with optional scoring. Subclasses are responsible for implementing specific storage mechanisms and the exact behavior of certain abstract methods.

VectorStoreInterface

Hierarchy (view full)

Implements

Constructors

Properties

FilterType: string | object

Defines the filter type used in search and delete operations. Can be an object for structured conditions or a string for simpler filtering.

Embeddings interface for generating vector embeddings from text queries, enabling vector-based similarity searches.

Methods

  • Adds documents to the vector store, embedding them first through the embeddings instance.

    Parameters

    • documents: DocumentInterface<Record<string, any>>[]

      Array of documents to embed and add.

    • Optionaloptions: AddDocumentOptions

      Optional configuration for embedding and storing documents.

    Returns Promise<void | string[]>

    A promise resolving to an array of document IDs or void, based on implementation.

  • Adds precomputed vectors and corresponding documents to the vector store.

    Parameters

    • vectors: number[][]

      An array of vectors representing each document.

    • documents: DocumentInterface<Record<string, any>>[]

      Array of documents associated with each vector.

    • Optionaloptions: AddDocumentOptions

      Optional configuration for adding vectors, such as indexing.

    Returns Promise<void | string[]>

    A promise resolving to an array of document IDs or void, based on implementation.

  • Creates a VectorStoreRetriever instance with flexible configuration options.

    Parameters

    • OptionalkOrFields: number | Partial<VectorStoreRetrieverInput<VectorStore>>

      If a number is provided, it sets the k parameter (number of items to retrieve).

      • If an object is provided, it should contain various configuration options.
    • Optionalfilter: string | object

      Optional filter criteria to limit the items retrieved based on the specified filter type.

    • Optionalcallbacks: Callbacks

      Optional callbacks that may be triggered at specific stages of the retrieval process.

    • Optionaltags: string[]

      Tags to categorize or label the VectorStoreRetriever. Defaults to an empty array if not provided.

    • Optionalmetadata: Record<string, unknown>

      Additional metadata as key-value pairs to add contextual information for the retrieval process.

    • Optionalverbose: boolean

      If true, enables detailed logging for the retrieval process. Defaults to false.

    Returns VectorStoreRetriever<VectorStore>

    • A configured VectorStoreRetriever instance based on the provided parameters.

    Basic usage with a k value:

    const retriever = myVectorStore.asRetriever(5);
    

    Usage with a configuration object:

    const retriever = myVectorStore.asRetriever({
    k: 10,
    filter: myFilter,
    tags: ['example', 'test'],
    verbose: true,
    searchType: 'mmr',
    searchKwargs: { alpha: 0.5 },
    });
  • Deletes documents from the vector store based on the specified parameters.

    Parameters

    • Optional_params: Record<string, any>

      Flexible key-value pairs defining conditions for document deletion.

    Returns Promise<void>

    A promise that resolves once the deletion is complete.

  • Searches for documents similar to a text query by embedding the query and performing a similarity search on the resulting vector.

    Parameters

    • query: string

      Text query for finding similar documents.

    • k: number = 4

      Number of similar results to return. Defaults to 4.

    • filter: undefined | string | object = undefined

      Optional filter based on FilterType.

    • _callbacks: undefined | Callbacks = undefined

      Optional callbacks for monitoring search progress

    Returns Promise<DocumentInterface<Record<string, any>>[]>

    A promise resolving to an array of DocumentInterface instances representing similar documents.

  • Performs a similarity search using a vector query and returns results along with their similarity scores.

    Parameters

    • query: number[]

      Vector representing the search query.

    • k: number

      Number of similar results to return.

    • Optionalfilter: string | object

      Optional filter based on FilterType to restrict results.

    Returns Promise<[DocumentInterface<Record<string, any>>, number][]>

    A promise resolving to an array of tuples containing documents and their similarity scores.

  • Searches for documents similar to a text query by embedding the query, and returns results with similarity scores.

    Parameters

    • query: string

      Text query for finding similar documents.

    • k: number = 4

      Number of similar results to return. Defaults to 4.

    • filter: undefined | string | object = undefined

      Optional filter based on FilterType.

    • _callbacks: undefined | Callbacks = undefined

      Optional callbacks for monitoring search progress

    Returns Promise<[DocumentInterface<Record<string, any>>, number][]>

    A promise resolving to an array of tuples, each containing a document and its similarity score.

  • Creates a VectorStore instance from an array of documents, using the specified embeddings and database configuration.

    Subclasses must implement this method to define how documents are embedded and stored. Throws an error if not overridden.

    Parameters

    • _docs: DocumentInterface<Record<string, any>>[]

      Array of DocumentInterface instances representing the documents to be stored.

    • _embeddings: EmbeddingsInterface

      Instance of EmbeddingsInterface to embed the documents.

    • _dbConfig: Record<string, any>

      Database configuration settings.

    Returns Promise<VectorStore>

    A promise that resolves to a new VectorStore instance.

    Throws an error if this method is not overridden by a subclass.

  • Creates a VectorStore instance from an array of text strings and optional metadata, using the specified embeddings and database configuration.

    Subclasses must implement this method to define how text and metadata are embedded and stored in the vector store. Throws an error if not overridden.

    Parameters

    • _texts: string[]

      Array of strings representing the text documents to be stored.

    • _metadatas: object | object[]

      Metadata for the texts, either as an array (one for each text) or a single object (applied to all texts).

    • _embeddings: EmbeddingsInterface

      Instance of EmbeddingsInterface to embed the texts.

    • _dbConfig: Record<string, any>

      Database configuration settings.

    Returns Promise<VectorStore>

    A promise that resolves to a new VectorStore instance.

    Throws an error if this method is not overridden by a subclass.