Abstract class extending VectorStore that defines a contract for saving and loading vector store instances.

The SaveableVectorStore class allows vector store implementations to persist their data and retrieve it when needed.The format for saving and loading data is left to the implementing subclass.

Subclasses must implement the save method to handle their custom serialization logic, while the load method enables reconstruction of a vector store from saved data, requiring compatible embeddings through the EmbeddingsInterface.

Hierarchy (view full)

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<SaveableVectorStore>>

      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<SaveableVectorStore>

    • 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.

  • Saves the current state of the vector store to the specified directory.

    This method must be implemented by subclasses to define their own serialization process for persisting vector data. The implementation determines the structure and format of the saved data.

    Parameters

    • directory: string

      The directory path where the vector store data will be saved.

    Returns Promise<void>

  • 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.

  • Loads a vector store instance from the specified directory, using the provided embeddings to ensure compatibility.

    This static method reconstructs a SaveableVectorStore from previously saved data. Implementations should interpret the saved data format to recreate the vector store instance.

    Parameters

    • _directory: string

      The directory path from which the vector store data will be loaded.

    • _embeddings: EmbeddingsInterface

      An instance of EmbeddingsInterface to align the embeddings with the loaded vector data.

    Returns Promise<SaveableVectorStore>

    A promise that resolves to a SaveableVectorStore instance constructed from the saved data.