Hierarchy

  • VectorStore
    • TurbopufferVectorStore

Constructors

Properties

apiKey: string
apiUrl: string = "https://api.turbopuffer.com/v1"
batchSize: number = 3000
caller: AsyncCaller
distanceMetric: TurbopufferDistanceMetric = "cosine_distance"
embeddings: EmbeddingsInterface

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

namespace: string = "default"

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: {
          ids?: string[];
      }

      Optional configuration for embedding and storing documents.

      • Optionalids?: string[]

    Returns Promise<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: {
          ids?: string[];
      }

      Optional configuration for adding vectors, such as indexing.

      • Optionalids?: string[]

    Returns Promise<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<TurbopufferVectorStore>>

      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: TurbopufferFilterType

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

    • 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

    • params: {
          deleteIndex?: boolean;
      }
      • OptionaldeleteIndex?: boolean

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

    • Optionalk: number

      Number of similar results to return. Defaults to 4.

    • Optionalfilter: TurbopufferFilterType

      Optional filter based on FilterType.

    • Optional_callbacks: Callbacks

      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: TurbopufferFilterType

      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.

    • Optionalk: number

      Number of similar results to return. Defaults to 4.

    • Optionalfilter: TurbopufferFilterType

      Optional filter based on FilterType.

    • Optional_callbacks: Callbacks

      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.

  • Returns Serialized

  • 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>>[]
    • embeddings: EmbeddingsInterface
    • dbConfig: TurbopufferParams

    Returns Promise<TurbopufferVectorStore>

    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.