embeddings.d.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { AsyncCaller, AsyncCallerParams } from "./utils/async_caller.js";
  2. /**
  3. * The parameters required to initialize an instance of the Embeddings
  4. * class.
  5. */
  6. export type EmbeddingsParams = AsyncCallerParams;
  7. export interface EmbeddingsInterface {
  8. /**
  9. * An abstract method that takes an array of documents as input and
  10. * returns a promise that resolves to an array of vectors for each
  11. * document.
  12. * @param documents An array of documents to be embedded.
  13. * @returns A promise that resolves to an array of vectors for each document.
  14. */
  15. embedDocuments(documents: string[]): Promise<number[][]>;
  16. /**
  17. * An abstract method that takes a single document as input and returns a
  18. * promise that resolves to a vector for the query document.
  19. * @param document A single document to be embedded.
  20. * @returns A promise that resolves to a vector for the query document.
  21. */
  22. embedQuery(document: string): Promise<number[]>;
  23. }
  24. /**
  25. * An abstract class that provides methods for embedding documents and
  26. * queries using LangChain.
  27. */
  28. export declare abstract class Embeddings implements EmbeddingsInterface {
  29. /**
  30. * The async caller should be used by subclasses to make any async calls,
  31. * which will thus benefit from the concurrency and retry logic.
  32. */
  33. caller: AsyncCaller;
  34. constructor(params: EmbeddingsParams);
  35. /**
  36. * An abstract method that takes an array of documents as input and
  37. * returns a promise that resolves to an array of vectors for each
  38. * document.
  39. * @param documents An array of documents to be embedded.
  40. * @returns A promise that resolves to an array of vectors for each document.
  41. */
  42. abstract embedDocuments(documents: string[]): Promise<number[][]>;
  43. /**
  44. * An abstract method that takes a single document as input and returns a
  45. * promise that resolves to a vector for the query document.
  46. * @param document A single document to be embedded.
  47. * @returns A promise that resolves to a vector for the query document.
  48. */
  49. abstract embedQuery(document: string): Promise<number[]>;
  50. }