@langchain/core
Version:
Core LangChain.js abstractions and schemas
1 lines • 2.47 kB
Source Map (JSON)
{"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,uCAAY,UAAU,EAAE,CAAC"}