LangChain4j integration for Google Vertex AI models including chat, language, embedding, image, and scoring capabilities
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
public class VertexAiEmbeddingModel extends DimensionAwareEmbeddingModel {
public Response<List<Embedding>> embedAll(List<TextSegment> segments);
public String modelName();
public List<Integer> calculateTokensCounts(List<TextSegment> segments);
public static Builder builder();
public static final Integer DEFAULT_MAX_SEGMENTS_PER_BATCH = 250;
public static final Integer DEFAULT_MAX_TOKENS_PER_BATCH = 20000;
}/**
* Embed multiple text segments into vectors.
*
* @param segments List of text segments to embed
* @return Response containing list of embeddings with metadata
*/
public Response<List<Embedding>> embedAll(List<TextSegment> segments);
/**
* Get the model name being used.
*
* @return The model name string
*/
public String modelName();
/**
* Calculate token counts for text segments.
*
* @param segments List of text segments
* @return List of token counts corresponding to each segment
*/
public List<Integer> calculateTokensCounts(List<TextSegment> segments);
/**
* Create a new builder for configuring a VertexAiEmbeddingModel.
*
* @return A new Builder instance
*/
public static Builder builder();public Builder endpoint(String endpoint); // API endpoint
public Builder project(String project); // GCP project ID
public Builder location(String location); // GCP region
public Builder publisher(String publisher); // Model publisher
public Builder modelName(String modelName); // Model name/versionpublic Builder maxRetries(Integer maxRetries); // Default: 2
public Builder maxSegmentsPerBatch(Integer maxSegmentsPerBatch); // Default: 250
public Builder maxTokensPerBatch(Integer maxTokensPerBatch); // Default: 20,000
public Builder taskType(TaskType taskType); // Task optimization
public Builder titleMetadataKey(String titleMetadataKey); // Default: "title"
public Builder autoTruncate(Boolean autoTruncate); // Default: false
public Builder outputDimensionality(Integer outputDimensionality); // Custom dimension
public Builder credentials(GoogleCredentials credentials); // Custom auth
public VertexAiEmbeddingModel build();public enum TaskType {
RETRIEVAL_QUERY, // Query for retrieval tasks
RETRIEVAL_DOCUMENT, // Document for retrieval tasks
SEMANTIC_SIMILARITY, // Semantic similarity comparison
CLASSIFICATION, // Text classification
CLUSTERING, // Text clustering
QUESTION_ANSWERING, // Question answering
FACT_VERIFICATION, // Fact verification
CODE_RETRIEVAL_QUERY // Code retrieval query
}public enum VertexAiEmbeddingModelName {
MULTIMODALEMBEDDING("multimodalembedding", 1408),
TEXT_EMBEDDING_004("text-embedding-004", 768),
TEXT_EMBEDDING_PREVIEW_0815("text-embedding-preview-0815", 768),
TEXT_MULTILINGUAL_EMBEDDING_002("text-multilingual-embedding-002", 768),
TEXTEMBEDDING_GECKO_MULTILINGUAL_001("textembedding-gecko-multilingual@001", 768),
TEXTEMBEDDING_GECKO_001("textembedding-gecko@001", 768),
TEXTEMBEDDING_GECKO_002("textembedding-gecko@002", 768),
TEXTEMBEDDING_GECKO_003("textembedding-gecko@003", 768);
public String toString();
public Integer dimension();
public static Integer knownDimension(String modelName);
}/**
* @deprecated Since version 1.2.0, use builder() instead
*/
@Deprecated
public VertexAiEmbeddingModel(
String endpoint,
String project,
String location,
String publisher,
String modelName,
Integer maxRetries,
Integer maxSegmentsPerBatch,
Integer maxTokensPerBatch,
TaskType taskType,
String titleMetadataKey,
Integer outputDimensionality,
Boolean autoTruncate
);{region}-aiplatform.googleapis.com:443 (note: different from other models)us-central1-aiplatform.googleapis.com:443DEFAULT_MAX_SEGMENTS_PER_BATCHDEFAULT_MAX_TOKENS_PER_BATCHRETRIEVAL_DOCUMENT: For indexing documentsRETRIEVAL_QUERY: For search queries"title"falsepublic class Response<T> {
public T content();
public TokenUsage tokenUsage();
public FinishReason finishReason();
}public class Embedding {
public float[] vector();
public int dimension();
}The model automatically batches requests based on:
If input exceeds limits, automatically splits into multiple API calls.
maxRetries timesautoTruncate is true, truncates oversized textsautoTruncate is false, throws exception for oversized textsThread-safe, can be reused across threads. Builder is not thread-safe.
taskType for best qualitycalculateTokensCounts()Install with Tessl CLI
npx tessl i tessl/maven-dev-langchain4j--langchain4j-vertex-ai@1.11.0