CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-dev-langchain4j--langchain4j-vertex-ai

LangChain4j integration for Google Vertex AI models including chat, language, embedding, image, and scoring capabilities

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

quick-reference.mddocs/

Quick Reference

Core Classes

// Chat Model
public class VertexAiChatModel implements ChatModel {
    public ChatResponse chat(ChatRequest chatRequest);
    public static Builder builder();
}

// Language Model
public class VertexAiLanguageModel implements LanguageModel {
    public Response<String> generate(String prompt);
    public static Builder builder();
}

// Embedding Model
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();
}

// Image Model
public class VertexAiImageModel implements ImageModel {
    public Response<Image> generate(String prompt);
    public Response<List<Image>> generate(String prompt, int n);
    public Response<Image> edit(Image image, String prompt);
    public Response<Image> edit(Image image, Image mask, String prompt);
    public static Builder builder();
}

// Scoring Model
public class VertexAiScoringModel implements ScoringModel {
    public Response<List<Double>> scoreAll(List<TextSegment> segments, String query);
    public static Builder builder();
}

Core Imports

import dev.langchain4j.model.vertexai.VertexAiChatModel;
import dev.langchain4j.model.vertexai.VertexAiLanguageModel;
import dev.langchain4j.model.vertexai.VertexAiEmbeddingModel;
import dev.langchain4j.model.vertexai.VertexAiImageModel;
import dev.langchain4j.model.vertexai.VertexAiScoringModel;
import dev.langchain4j.model.vertexai.VertexAiEmbeddingModelName;

Common Builder Methods

All model builders (except ScoringModel) share these methods:

Builder endpoint(String endpoint);        // GCP API endpoint URL
Builder project(String project);          // Google Cloud Project ID
Builder location(String location);        // GCP region
Builder publisher(String publisher);      // Model publisher ("google")
Builder modelName(String modelName);      // Model name/version
Builder maxRetries(Integer maxRetries);   // Retry attempts on failure

Model-Specific Builder Methods

Chat Model

Builder temperature(Double temperature);              // 0.0-1.0
Builder maxOutputTokens(Integer maxOutputTokens);    // Max response length
Builder topK(Integer topK);                          // Top-K sampling
Builder topP(Double topP);                           // Nucleus sampling
Builder credentials(GoogleCredentials credentials);  // Custom auth

Language Model

Builder temperature(Double temperature);              // 0.0-1.0
Builder maxOutputTokens(Integer maxOutputTokens);    // Max response length
Builder topK(Integer topK);                          // Top-K sampling
Builder topP(Double topP);                           // Nucleus sampling

Embedding Model

Builder maxSegmentsPerBatch(Integer maxSegmentsPerBatch);  // Max segments per API call (default: 250)
Builder maxTokensPerBatch(Integer maxTokensPerBatch);      // Max tokens per batch (default: 20,000)
Builder taskType(TaskType taskType);                       // Optimization for task type
Builder titleMetadataKey(String titleMetadataKey);         // Metadata key for titles (default: "title")
Builder autoTruncate(Boolean autoTruncate);                // Auto-truncate long texts (default: false)
Builder outputDimensionality(Integer outputDimensionality); // Custom dimension
Builder credentials(GoogleCredentials credentials);         // Custom auth

Image Model

Builder seed(Long seed);                              // Random seed (0-4,294,967,295)
Builder language(String language);                    // Language code
Builder guidanceScale(Integer guidanceScale);         // Edit strength (0-21+)
Builder negativePrompt(String negativePrompt);        // What to avoid
Builder aspectRatio(AspectRatio aspectRatio);         // Image aspect ratio
Builder mimeType(MimeType mimeType);                  // PNG or JPEG
Builder compressionQuality(Integer compressionQuality); // JPEG quality (1-100)
Builder personGeneration(PersonGeneration personGeneration); // Person generation policy
Builder watermark(Boolean watermark);                 // Add watermark
Builder persistToCloudStorage(String gcsUri);         // Save to GCS
Builder withPersisting();                             // Enable local persistence
Builder persistTo(Path persistTo);                    // Local save path
Builder logRequests(Boolean logRequests);             // Log requests
Builder logResponses(Boolean logResponses);           // Log responses

Scoring Model

Builder projectId(String projectId);                  // GCP project ID
Builder projectNumber(String projectNumber);          // GCP project number (12-digit)
Builder location(String location);                    // GCP region
Builder model(String model);                          // Ranking model name
Builder titleMetadataKey(String titleMetadataKey);    // Metadata key for titles (default: "title")

Common Model Names

Chat Models

  • chat-bison@001, chat-bison@002 - PaLM 2
  • gemini-pro - Gemini Pro
  • gemini-ultra - Gemini Ultra

Language Models

  • text-bison@001, text-bison@002 - PaLM 2
  • text-bison-32k - Extended context

Embedding Models

  • text-embedding-004 - Latest (768d)
  • textembedding-gecko@001/002/003 - Gecko (768d)
  • text-multilingual-embedding-002 - Multilingual (768d)
  • multimodalembedding - Multimodal (1408d)

Image Models

  • imagegeneration@006 - Imagen 3 (latest)
  • imagegeneration@005 - Imagen 2
  • imagegeneration@002 - Imagen 1

Scoring Models

  • semantic-ranker-512@latest - Semantic ranker

Endpoint Patterns

US Central:       https://us-central1-aiplatform.googleapis.com/v1/
Europe West:      https://europe-west1-aiplatform.googleapis.com/v1/
Asia Northeast:   https://asia-northeast1-aiplatform.googleapis.com/v1/

Embedding:        us-central1-aiplatform.googleapis.com:443

Authentication

All models support:

  • Default Application Credentials (auto-discovery)
  • GOOGLE_APPLICATION_CREDENTIALS environment variable
  • Google Cloud SDK (gcloud auth application-default login)
  • Custom GoogleCredentials via credentials() builder method

Enums

TaskType (Embedding)

RETRIEVAL_QUERY, RETRIEVAL_DOCUMENT, SEMANTIC_SIMILARITY, CLASSIFICATION,
CLUSTERING, QUESTION_ANSWERING, FACT_VERIFICATION, CODE_RETRIEVAL_QUERY

AspectRatio (Image)

SQUARE ("1:1"), PORTRAIT ("9:16"), LANDSCAPE ("16:9"),
THREE_FOURTHS ("3:4"), FOUR_THIRDS ("4:3")

MimeType (Image)

PNG ("image/png"), JPEG ("image/jpeg")

PersonGeneration (Image)

DONT_ALLOW ("dont_allow"), ALLOW_ADULT ("allow_adult"), ALLOW_ALL ("allow_all")

ImageStyle (Image - Imagen v1 only)

PHOTOGRAPH, DIGITAL_ART, LANDSCAPE, SKETCH, WATERCOLOR, CYBERPUNK, POP_ART

VertexAiEmbeddingModelName

public enum VertexAiEmbeddingModelName {
    MULTIMODALEMBEDDING (1408),
    TEXT_EMBEDDING_004 (768),
    TEXT_EMBEDDING_PREVIEW_0815 (768),
    TEXT_MULTILINGUAL_EMBEDDING_002 (768),
    TEXTEMBEDDING_GECKO_MULTILINGUAL_001 (768),
    TEXTEMBEDDING_GECKO_001 (768),
    TEXTEMBEDDING_GECKO_002 (768),
    TEXTEMBEDDING_GECKO_003 (768);

    public String toString();
    public Integer dimension();
    public static Integer knownDimension(String modelName);
}

SPI Factory Interfaces

public interface VertexAiChatModelBuilderFactory extends Supplier<VertexAiChatModel.Builder> {}
public interface VertexAiEmbeddingModelBuilderFactory extends Supplier<VertexAiEmbeddingModel.Builder> {}
public interface VertexAiLanguageModelBuilderFactory extends Supplier<VertexAiLanguageModel.Builder> {}
public interface VertexAiImageModelBuilderFactory extends Supplier<VertexAiImageModel.Builder> {}

Note: VertexAiScoringModel does not have an SPI factory interface.

Install with Tessl CLI

npx tessl i tessl/maven-dev-langchain4j--langchain4j-vertex-ai

docs

index.md

quick-reference.md

tile.json