langchain.js
    Preparing search index...

    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 Summary)

    Implements

    Index

    Constructors

    • Initializes a new vector store with embeddings and database configuration.

      Parameters

      • embeddings: EmbeddingsInterface

        Instance of EmbeddingsInterface used to embed queries.

      • dbConfig: Record<string, any>

        Configuration settings for the database or storage system.

      Returns VectorStore

    Properties

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

    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.

    lc_kwargs: SerializedFields
    lc_serializable: boolean = false

    Accessors

    • get lc_aliases(): undefined | { [key: string]: string }

      A map of aliases for constructor args. Keys are the attribute names, e.g. "foo". Values are the alias that will replace the key in serialization. This is used to eg. make argument names match Python.

      Returns undefined | { [key: string]: string }

    • get lc_attributes(): undefined | SerializedFields

      A map of additional attributes to merge with constructor args. Keys are the attribute names, e.g. "foo". Values are the attribute values, which will be serialized. These attributes need to be accepted by the constructor as arguments.

      Returns undefined | SerializedFields

    • get lc_id(): string[]

      The final serialized identifier for the module.

      Returns string[]

    • get lc_secrets(): undefined | { [key: string]: string }

      A map of secrets, which will be omitted from serialization. Keys are paths to the secret in constructor args, e.g. "foo.bar.baz". Values are the secret ids, which will be used when deserializing.

      Returns undefined | { [key: string]: string }

    Methods

    • Returns a string representing the type of vector store, which subclasses must implement to identify their specific vector storage type.

      Returns string

      A string indicating the vector store type.

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

    • Return documents selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to the query AND diversity among selected documents.

      Parameters

      • query: string

        Text to look up documents similar to.

      • options: MaxMarginalRelevanceSearchOptions<string | object>

        Options for configuring a maximal marginal relevance (MMR) search.

        MMR search optimizes for both similarity to the query and diversity among the results, balancing the retrieval of relevant documents with variation in the content returned.

        Fields:

        • fetchK (optional): The initial number of documents to retrieve from the vector store before applying the MMR algorithm. This larger set provides a pool of documents from which the algorithm can select the most diverse results based on relevance to the query.

        • filter (optional): A filter of type FilterType to refine the search results, allowing additional conditions to target specific subsets of documents.

        • k: The number of documents to return in the final results. This is the primary count of documents that are most relevant to the query.

        • lambda (optional): A value between 0 and 1 that determines the balance between relevance and diversity:

          • A lambda of 0 emphasizes diversity, maximizing content variation.
          • A lambda of 1 emphasizes similarity to the query, focusing on relevance. Values between 0 and 1 provide a mix of relevance and diversity.
        • OptionalfetchK?: number
        • Optionalfilter?: FilterType
        • k: number
        • Optionallambda?: number
      • _callbacks: undefined | Callbacks

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

      • List of documents selected by maximal marginal relevance.
    • 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.

    • The name of the serializable. Override to provide an alias or to preserve the serialized module name in minified environments.

      Implemented as a static method to support loading logic.

      Returns string