{"version":3,"file":"embeddings.cjs","names":["AsyncCaller"],"sources":["../src/embeddings.ts"],"sourcesContent":["import { AsyncCaller, AsyncCallerParams } from \"./utils/async_caller.js\";\n\n/**\n * The parameters required to initialize an instance of the Embeddings\n * class.\n */\nexport type EmbeddingsParams = AsyncCallerParams;\n\nexport interface EmbeddingsInterface<TOutput = number[]> {\n  /**\n   * An abstract method that takes an array of documents as input and\n   * returns a promise that resolves to an array of vectors for each\n   * document.\n   * @param documents An array of documents to be embedded.\n   * @returns A promise that resolves to an array of vectors for each document.\n   */\n  embedDocuments(documents: string[]): Promise<TOutput[]>;\n\n  /**\n   * An abstract method that takes a single document as input and returns a\n   * promise that resolves to a vector for the query document.\n   * @param document A single document to be embedded.\n   * @returns A promise that resolves to a vector for the query document.\n   */\n  embedQuery(document: string): Promise<TOutput>;\n}\n\n/**\n * An abstract class that provides methods for embedding documents and\n * queries using LangChain.\n */\nexport abstract class Embeddings<\n  TOutput = number[],\n> implements EmbeddingsInterface<TOutput> {\n  /**\n   * The async caller should be used by subclasses to make any async calls,\n   * which will thus benefit from the concurrency and retry logic.\n   */\n  caller: AsyncCaller;\n\n  constructor(params: EmbeddingsParams) {\n    this.caller = new AsyncCaller(params ?? {});\n  }\n\n  /**\n   * An abstract method that takes an array of documents as input and\n   * returns a promise that resolves to an array of vectors for each\n   * document.\n   * @param documents An array of documents to be embedded.\n   * @returns A promise that resolves to an array of vectors for each document.\n   */\n  abstract embedDocuments(documents: string[]): Promise<TOutput[]>;\n\n  /**\n   * An abstract method that takes a single document as input and returns a\n   * promise that resolves to a vector for the query document.\n   * @param document A single document to be embedded.\n   * @returns A promise that resolves to a vector for the query document.\n   */\n  abstract embedQuery(document: string): Promise<TOutput>;\n}\n"],"mappings":";;;;;;;;;AA+BA,IAAsB,aAAtB,MAE0C;;;;;CAKxC;CAEA,YAAY,QAA0B;AACpC,OAAK,SAAS,IAAIA,2BAAAA,YAAY,UAAU,EAAE,CAAC"}