ZepVectorStore is a VectorStore implementation that uses the Zep long-term memory store as a backend.

If the collection does not exist, it will be created automatically.

Requires zep-js to be installed:

npm install @getzep/zep-js

Hierarchy (view full)

Constructors

Properties

client: ZepClient

The ZepClient instance used to interact with Zep's API.

collection: DocumentCollection

The Zep document collection.

Methods

  • Adds documents to the collection. The documents are first embedded into vectors using the provided embedding model.

    Parameters

    • documents: Document[]

      The documents to add.

    Returns Promise<string[]>

    • A promise that resolves with the UUIDs of the added documents.
  • Adds vectors and corresponding documents to the collection.

    Parameters

    • vectors: number[][]

      The vectors to add.

    • documents: Document[]

      The corresponding documents to add.

    Returns Promise<string[]>

    • A promise that resolves with the UUIDs of the added documents.
  • 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<this["FilterType"]>

    Returns Promise<Document[]>

    • List of documents selected by maximal marginal relevance.
  • Performs a similarity search on the Zep collection.

    Parameters

    • query: string

      The query string to search for.

    • Optionalk: number = 4

      The number of results to return. Defaults to 4.

    • Optionalfilter: unknown = undefined

      An optional set of JSONPath filters to apply to the search.

    • Optional_callbacks: any = undefined

      Optional callbacks. Currently not implemented.

    Returns Promise<Document[]>

    • A promise that resolves to an array of Documents that are similar to the query.
  • Performs a similarity search in the collection and returns the results with their scores.

    Parameters

    • query: number[]

      The query vector.

    • k: number

      The number of results to return.

    • Optionalfilter: Record<string, unknown>

      The filter to apply to the search. Zep only supports Record<string, unknown> as filter.

    Returns Promise<[Document, number][]>

    • A promise that resolves with the search results and their scores.
  • Parameters

    • query: string
    • k: number = 4
    • filter: undefined | Record<string, unknown> = undefined
    • _callbacks: undefined = undefined

    Returns Promise<[Document, number][]>

  • Creates a new ZepVectorStore instance from an array of Documents. Each Document is added to a Zep collection.

    Parameters

    • docs: Document[]

      The Documents to add.

    • embeddings: EmbeddingsInterface

      The embeddings to use for vectorizing the Document contents.

    • zepConfig: IZepConfig

      The configuration object for the Zep API.

    Returns Promise<ZepVectorStore>

    • A promise that resolves with the new ZepVectorStore instance.
  • Creates a new ZepVectorStore instance from an array of texts. Each text is converted into a Document and added to the collection.

    Parameters

    • texts: string[]

      The texts to convert into Documents.

    • metadatas: object | object[]

      The metadata to associate with each Document. If an array is provided, each element is associated with the corresponding Document. If an object is provided, it is associated with all Documents.

    • embeddings: EmbeddingsInterface

      The embeddings to use for vectorizing the texts.

    • zepConfig: IZepConfig

      The configuration object for the Zep API.

    Returns Promise<ZepVectorStore>

    • A promise that resolves with the new ZepVectorStore instance.
""