@langchain/community
Version:
Third-party integrations for LangChain.js
55 lines (54 loc) • 2.44 kB
TypeScript
import { GoogleAuthOptions } from "google-auth-library";
import { Embeddings, EmbeddingsParams } from "@langchain/core/embeddings";
import { GoogleVertexAIBaseLLMInput } from "../types/googlevertexai-types.js";
/**
* Defines the parameters required to initialize a
* GoogleVertexAIEmbeddings instance. It extends EmbeddingsParams and
* GoogleVertexAIConnectionParams.
*/
export interface GoogleVertexAIEmbeddingsParams extends EmbeddingsParams, GoogleVertexAIBaseLLMInput<GoogleAuthOptions> {
}
/**
* Enables calls to the Google Cloud's Vertex AI API to access
* the embeddings generated by Large Language Models.
*
* To use, you will need to have one of the following authentication
* methods in place:
* - You are logged into an account permitted to the Google Cloud project
* using Vertex AI.
* - You are running this on a machine using a service account permitted to
* the Google Cloud project using Vertex AI.
* - The `GOOGLE_APPLICATION_CREDENTIALS` environment variable is set to the
* path of a credentials file for a service account permitted to the
* Google Cloud project using Vertex AI.
* @example
* ```typescript
* const model = new GoogleVertexAIEmbeddings();
* const res = await model.embedQuery(
* "What would be a good company name for a company that makes colorful socks?"
* );
* console.log({ res });
* ```
*/
export declare class GoogleVertexAIEmbeddings extends Embeddings implements GoogleVertexAIEmbeddingsParams {
model: string;
private connection;
constructor(fields?: GoogleVertexAIEmbeddingsParams);
/**
* Takes an array of documents as input and returns a promise that
* resolves to a 2D array of embeddings for each document. It splits the
* documents into chunks and makes requests to the Google Vertex AI API to
* generate embeddings.
* @param documents An array of documents to be embedded.
* @returns A promise that resolves to a 2D array of embeddings for each document.
*/
embedDocuments(documents: string[]): Promise<number[][]>;
/**
* Takes a document as input and returns a promise that resolves to an
* embedding for the document. It calls the embedDocuments method with the
* document as the input.
* @param document A document to be embedded.
* @returns A promise that resolves to an embedding for the document.
*/
embedQuery(document: string): Promise<number[]>;
}