Package dev.langchain4j.model.vertexai
Class VertexAiEmbeddingModel
java.lang.Object
dev.langchain4j.model.embedding.DimensionAwareEmbeddingModel
dev.langchain4j.model.vertexai.VertexAiEmbeddingModel
- All Implemented Interfaces:
EmbeddingModel
Represents a Google Vertex AI embedding model, such as textembedding-gecko.
See details here.
This embedding model transparently handles call batching, however the underlying API has imposes a maximum of 250 embeddings per call, with a max of 20,000 tokens per call. You can tweak those two parameters with the
For authentication and authorization, please follow these steps before using this model:
1. Authentication
When developing locally, you can use one of:
a) Google Cloud SDK
b) Service account When using service account, ensure that
2. Authorization
3. Prerequisites
This embedding model transparently handles call batching, however the underlying API has imposes a maximum of 250 embeddings per call, with a max of 20,000 tokens per call. You can tweak those two parameters with the
maxSegmentsPerBatch()
and
maxTokensPerBatch()
builder methods.
For example, if you hit the 20,000 error, set maxTokensPerBatch(18_000)
.
For authentication and authorization, please follow these steps before using this model:
1. Authentication
When developing locally, you can use one of:
a) Google Cloud SDK
b) Service account When using service account, ensure that
GOOGLE_APPLICATION_CREDENTIALS
environment variable points to your JSON service account key.
2. Authorization
3. Prerequisites
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static enum
-
Field Summary
Fields inherited from class dev.langchain4j.model.embedding.DimensionAwareEmbeddingModel
dimension
-
Constructor Summary
ConstructorDescriptionVertexAiEmbeddingModel
(String endpoint, String project, String location, String publisher, String modelName, Integer maxRetries, Integer maxSegmentsPerBatch, Integer maxTokensPerBatch, VertexAiEmbeddingModel.TaskType taskType, String titleMetadataKey, Integer outputDimensionality, Boolean autoTruncate) -
Method Summary
Modifier and TypeMethodDescriptionbuilder()
calculateTokensCounts
(List<TextSegment> segments) Calculates the number of tokens for each segment in the input list.embedAll
(List<TextSegment> segments) Embeds the text content of a list of TextSegments.protected Integer
When known (e.g., can be derived from the model name), returns the dimension of theEmbedding
produced by this embedding model.Methods inherited from class dev.langchain4j.model.embedding.DimensionAwareEmbeddingModel
dimension
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface dev.langchain4j.model.embedding.EmbeddingModel
embed, embed
-
Constructor Details
-
VertexAiEmbeddingModel
public VertexAiEmbeddingModel(String endpoint, String project, String location, String publisher, String modelName, Integer maxRetries, Integer maxSegmentsPerBatch, Integer maxTokensPerBatch, VertexAiEmbeddingModel.TaskType taskType, String titleMetadataKey, Integer outputDimensionality, Boolean autoTruncate)
-
-
Method Details
-
embedAll
Description copied from interface:EmbeddingModel
Embeds the text content of a list of TextSegments.- Parameters:
segments
- the text segments to embed.- Returns:
- the embeddings.
-
calculateTokensCounts
Calculates the number of tokens for each segment in the input list.- Parameters:
segments
- a list of TextSegments- Returns:
- a list of tokens counts for each segment
-
knownDimension
Description copied from class:DimensionAwareEmbeddingModel
When known (e.g., can be derived from the model name), returns the dimension of theEmbedding
produced by this embedding model. Otherwise, it returnsnull
.- Overrides:
knownDimension
in classDimensionAwareEmbeddingModel
- Returns:
- the known dimension of the
Embedding
, ornull
if unknown.
-
builder
-