Class that extends VectorStore to store vectors in memory. Provides methods for adding documents, performing similarity searches, and creating instances from texts, documents, or an existing index.

Hierarchy (view full)

Constructors

Properties

FilterType: ((doc: Document<Record<string, any>>) => boolean)

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.

memoryVectors: MemoryVector[] = []
similarity: ((a: number[], b: number[]) => number)

Type declaration

    • (a, b): number
    • Returns the average of cosine distances between vectors a and b

      Parameters

      • a: number[]

        first vector

      • b: number[]

        second vector

      Returns number

Methods

  • Method to add documents to the memory vector store. It extracts the text from each document, generates embeddings for them, and adds the resulting vectors to the store.

    Parameters

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

      Array of Document instances to be added to the store.

    Returns Promise<void>

    Promise that resolves when all documents have been added.

  • Method to add vectors to the memory vector store. It creates MemoryVector instances for each vector and document pair and adds them to the store.

    Parameters

    • vectors: number[][]

      Array of vectors to be added to the store.

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

      Array of Document instances corresponding to the vectors.

    Returns Promise<void>

    Promise that resolves when all vectors have been added.

  • Creates a VectorStoreRetriever instance with flexible configuration options.

    Parameters

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

      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: ((doc: Document<Record<string, any>>) => boolean)

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

        • (doc): boolean
        • Parameters

          Returns boolean

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

    • 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 | ((doc: Document<Record<string, any>>) => boolean) = 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.

  • Method to perform a similarity search in the memory vector store. It calculates the similarity between the query vector and each vector in the store, sorts the results by similarity, and returns the top k results along with their scores.

    Parameters

    • query: number[]

      Query vector to compare against the vectors in the store.

    • k: number

      Number of top results to return.

    • Optionalfilter: ((doc: Document<Record<string, any>>) => boolean)

      Optional filter function to apply to the vectors before performing the search.

        • (doc): boolean
        • Parameters

          Returns boolean

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

    Promise that resolves with an array of tuples, each containing a Document and its similarity score.

  • 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 | ((doc: Document<Record<string, any>>) => boolean) = 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.

  • Static method to create a FakeVectorStore instance from an existing index. It creates a new FakeVectorStore instance without adding any documents or vectors.

    Parameters

    • embeddings: EmbeddingsInterface

      Embeddings instance used to generate embeddings for the documents.

    • OptionaldbConfig: FakeVectorStoreArgs

      Optional FakeVectorStoreArgs to configure the FakeVectorStore instance.

    Returns Promise<FakeVectorStore>

    Promise that resolves with a new FakeVectorStore instance.

  • Static method to create a FakeVectorStore instance from an array of texts. It creates a Document for each text and metadata pair, and adds them to the store.

    Parameters

    • texts: string[]

      Array of texts to be added to the store.

    • metadatas: object | object[]

      Array or single object of metadata corresponding to the texts.

    • embeddings: EmbeddingsInterface

      Embeddings instance used to generate embeddings for the texts.

    • OptionaldbConfig: FakeVectorStoreArgs

      Optional FakeVectorStoreArgs to configure the FakeVectorStore instance.

    Returns Promise<FakeVectorStore>

    Promise that resolves with a new FakeVectorStore instance.