Class that provides an interface to a Postgres vector database. It extends the VectorStore base class and implements methods for adding documents and vectors, performing similarity searches, and ensuring the existence of a table in the database.

Hierarchy

Properties

FilterType: Metadata
chunkSize: number = 500
collectionMetadata: null | Metadata
collectionName: string = "langchain"
contentColumnName: string
embeddings: Embeddings
idColumnName: string
metadataColumnName: string
pool: Pool
tableName: string
vectorColumnName: string
client?: PoolClient
collectionTableName?: string
filter?: Metadata

Methods

  • Method to add documents to the vector store. It converts the documents into vectors, and adds them to the store.

    Parameters

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

      Array of Document instances.

    Returns Promise<void>

    Promise that resolves when the documents have been added.

  • Method to add vectors to the vector store. It converts the vectors into rows and inserts them into the database.

    Parameters

    • vectors: number[][]

      Array of vectors.

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

      Array of Document instances.

    Returns Promise<void>

    Promise that resolves when the vectors have been added.

  • Method to delete documents from the vector store. It deletes the documents that match the provided ids or metadata filter. Matches ids exactly and metadata filter according to postgres jsonb containment. Ids and filter are mutually exclusive.

    Parameters

    • params: {
          filter?: Metadata;
          ids?: string[];
      }

      Object containing either an array of ids or a metadata filter object.

      • Optional filter?: Metadata
      • Optional ids?: string[]

    Returns Promise<void>

    Promise that resolves when the documents have been deleted.

    Throws

    Error if neither ids nor filter are provided, or if both are provided.

    Example

    Delete by ids

    await vectorStore.delete({ ids: ["id1", "id2"] });
    

    Example

    Delete by filter

    await vectorStore.delete({ filter: { a: 1, b: 2 } });
    
  • Closes all the clients in the pool and terminates the pool.

    Returns Promise<void>

    Promise that resolves when all clients are closed and the pool is terminated.

  • Method to ensure the existence of the collection table in the database. It creates the table if it does not already exist.

    Returns Promise<void>

    Promise that resolves when the collection table has been ensured.

  • Method to ensure the existence of the table in the database. It creates the table if it does not already exist.

    Returns Promise<void>

    Promise that resolves when the table has been ensured.

  • Inserts a row for the collectionName provided at initialization if it does not exist and returns the collectionId.

    Returns Promise<string>

    The collectionId for the given collectionName.

  • Parameters

    • query: string
    • k: number = 4
    • filter: undefined | Metadata = undefined
    • _callbacks: undefined | Callbacks = undefined

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

  • Method to perform a similarity search in the vector store. It returns the k most similar documents to the query vector, along with their similarity scores.

    Parameters

    • query: number[]

      Query vector.

    • k: number

      Number of most similar documents to return.

    • Optional filter: Metadata

      Optional filter to apply to the search.

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

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

  • Parameters

    • query: string
    • k: number = 4
    • filter: undefined | Metadata = undefined
    • _callbacks: undefined | Callbacks = undefined

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

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

    Parameters

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

    • List of documents selected by maximal marginal relevance.
  • Static method to create a new PGVectorStore instance from an array of Document instances. It adds the documents to the store.

    Parameters

    Returns Promise<PGVectorStore>

    Promise that resolves with a new instance of PGVectorStore.

  • Static method to create a new PGVectorStore instance from an array of texts and their metadata. It converts the texts into Document instances and adds them to the store.

    Parameters

    • texts: string[]

      Array of texts.

    • metadatas: object | object[]

      Array of metadata objects or a single metadata object.

    • embeddings: Embeddings

      Embeddings instance.

    • dbConfig: PGVectorStoreArgs

      PGVectorStoreArgs instance.

    Returns Promise<PGVectorStore>

    Promise that resolves with a new instance of PGVectorStore.

  • Static method to create a new PGVectorStore instance from a connection. It creates a table if one does not exist, and calls connect to return a new instance of PGVectorStore.

    Parameters

    Returns Promise<PGVectorStore>

    A new instance of PGVectorStore.

Generated using TypeDoc