import { PoolConfig } from "pg"; import { VectorStore } from "@langchain/core/vectorstores"; import type { EmbeddingsInterface } from "@langchain/core/embeddings"; import { Document } from "@langchain/core/documents"; /** * Interface defining the arguments required to create an instance of * `AnalyticDBVectorStore`. */ export interface AnalyticDBArgs { connectionOptions: PoolConfig; embeddingDimension?: number; collectionName?: string; preDeleteCollection?: boolean; } /** * Class that provides methods for creating and managing a collection of * documents in an AnalyticDB, adding documents or vectors to the * collection, performing similarity search on vectors, and creating an * instance of `AnalyticDBVectorStore` from texts or documents. */ export declare class AnalyticDBVectorStore extends VectorStore { FilterType: Record; private pool; private embeddingDimension?; private collectionName; private preDeleteCollection; private isCreateCollection; _vectorstoreType(): string; constructor(embeddings: EmbeddingsInterface, args: AnalyticDBArgs); /** * Closes all the clients in the pool and terminates the pool. * @returns Promise that resolves when all clients are closed and the pool is terminated. */ end(): Promise; /** * Creates a new table in the database if it does not already exist. The * table is created with columns for id, embedding, document, and * metadata. An index is also created on the embedding column if it does * not already exist. * @returns Promise that resolves when the table and index are created. */ createTableIfNotExists(): Promise; /** * Deletes the collection from the database if it exists. * @returns Promise that resolves when the collection is deleted. */ deleteCollection(): Promise; /** * Creates a new collection in the database. If `preDeleteCollection` is * true, any existing collection with the same name is deleted before the * new collection is created. * @returns Promise that resolves when the collection is created. */ createCollection(): Promise; /** * Adds an array of documents to the collection. The documents are first * converted to vectors using the `embedDocuments` method of the * `embeddings` instance. * @param documents Array of Document instances to be added to the collection. * @returns Promise that resolves when the documents are added. */ addDocuments(documents: Document[]): Promise; /** * Adds an array of vectors and corresponding documents to the collection. * The vectors and documents are batch inserted into the database. * @param vectors Array of vectors to be added to the collection. * @param documents Array of Document instances corresponding to the vectors. * @returns Promise that resolves when the vectors and documents are added. */ addVectors(vectors: number[][], documents: Document[]): Promise; /** * Performs a similarity search on the vectors in the collection. The * search is performed using the given query vector and returns the top k * most similar vectors along with their corresponding documents and * similarity scores. * @param query Query vector for the similarity search. * @param k Number of top similar vectors to return. * @param filter Optional. Filter to apply on the metadata of the documents. * @returns Promise that resolves to an array of tuples, each containing a Document instance and its similarity score. */ similaritySearchVectorWithScore(query: number[], k: number, filter?: this["FilterType"]): Promise<[Document, number][]>; /** * Creates an instance of `AnalyticDBVectorStore` from an array of texts * and corresponding metadata. The texts are first converted to Document * instances before being added to the collection. * @param texts Array of texts to be added to the collection. * @param metadatas Array or object of metadata corresponding to the texts. * @param embeddings Embeddings instance used to convert the texts to vectors. * @param dbConfig Configuration for the AnalyticDB. * @returns Promise that resolves to an instance of `AnalyticDBVectorStore`. */ static fromTexts(texts: string[], metadatas: object[] | object, embeddings: EmbeddingsInterface, dbConfig: AnalyticDBArgs): Promise; /** * Creates an instance of `AnalyticDBVectorStore` from an array of * Document instances. The documents are added to the collection. * @param docs Array of Document instances to be added to the collection. * @param embeddings Embeddings instance used to convert the documents to vectors. * @param dbConfig Configuration for the AnalyticDB. * @returns Promise that resolves to an instance of `AnalyticDBVectorStore`. */ static fromDocuments(docs: Document[], embeddings: EmbeddingsInterface, dbConfig: AnalyticDBArgs): Promise; /** * Creates an instance of `AnalyticDBVectorStore` from an existing index * in the database. A new collection is created in the database. * @param embeddings Embeddings instance used to convert the documents to vectors. * @param dbConfig Configuration for the AnalyticDB. * @returns Promise that resolves to an instance of `AnalyticDBVectorStore`. */ static fromExistingIndex(embeddings: EmbeddingsInterface, dbConfig: AnalyticDBArgs): Promise; }