Member Junction
    Preparing search index...

    VertexLLM - Google Vertex AI implementation

    Extends GeminiLLM and reuses all its logic (chat, streaming, thinking, parameters, multimodal content, message alternation, error handling, etc.).

    The only difference is authentication - this class overrides the constructor to handle GCP authentication instead of API keys.

    // Option 1: ADC (Application Default Credentials)
    // Set GOOGLE_APPLICATION_CREDENTIALS env var or use gcloud auth
    const llm = new VertexLLM(JSON.stringify({
    project: 'my-project',
    location: 'us-central1'
    }));
    // Option 2: Service account JSON as string (from credential system)
    const serviceAccountJson = JSON.stringify({
    type: 'service_account',
    project_id: 'my-project',
    private_key: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n',
    client_email: 'sa@my-project.iam.gserviceaccount.com',
    client_id: '123456789'
    // ... other service account fields
    });
    const llm = new VertexLLM(JSON.stringify({
    project: 'my-project',
    location: 'us-central1',
    serviceAccountJson: serviceAccountJson
    }));
    // Option 3: Service account JSON inline
    const llm = new VertexLLM(JSON.stringify({
    type: 'service_account',
    project_id: 'my-project',
    private_key: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n',
    client_email: 'sa@my-project.iam.gserviceaccount.com',
    client_id: '123456789',
    // ... other service account fields
    location: 'us-central1'
    }));
    // Option 4: Key file path reference
    const llm = new VertexLLM(JSON.stringify({
    keyFilePath: '/path/to/service-account.json',
    project: 'my-project',
    location: 'us-central1'
    }));

    Hierarchy (View Summary)

    Index

    Constructors

    • Create a new VertexLLM instance

      Parameters

      • credentialsJson: string

        JSON string containing Vertex AI credentials. Must include at minimum: { project: 'id', location?: 'region' } Can include full service account JSON or keyFilePath for authentication.

        If neither service account fields nor keyFilePath are provided, will use Application Default Credentials (ADC).

      Returns VertexLLM

    Properties

    _additionalSettings: Record<string, any>

    Protected property to store additional provider-specific settings

    _gemini: GoogleGenAI
    thinkingStreamState: ThinkingStreamState

    State tracking for streaming thinking extraction Providers should initialize this if they support thinking models

    Accessors

    • get AdditionalSettings(): Record<string, any>

      Get the current additional settings

      Returns Record<string, any>

    • get apiKey(): string

      Only sub-classes can access the API key

      Returns string

    • get GeminiClient(): GoogleGenAI

      Read only getter method to get the Gemini client instance Note: This is async now because the client may not be initialized yet

      Returns GoogleGenAI

    • get SupportsPrefill(): boolean

      Whether this LLM provider supports assistant prefill (pre-seeding the start of the model's response). Providers that support prefill should override this to return true. This is used as a code-level default when database metadata (AIModelType/AIModel/AIModelVendor.SupportsPrefill) is null. Database values of true/false override this getter.

      Returns boolean

    • get SupportsStreaming(): boolean

      Gemini supports streaming

      Returns boolean

    Methods

    • Process a chat completion request. If streaming is enabled and supported, this will route to the streaming implementation.

      Parameters

      Returns Promise<ChatResult>

    • Process multiple chat completion requests in parallel. This is useful for:

      • Generating multiple variations with different parameters (temperature, etc.)
      • Getting multiple responses to compare or select from
      • Improving reliability by sending the same request multiple times

      Parameters

      Returns Promise<ChatResult[]>

      Promise resolving to an array of ChatResults in the same order as the input params

    • Parameters

      • params: any

      Returns Promise<any>

    • Clear all additional settings This is useful for resetting the state of the provider or when switching between different configurations.

      Returns void

    • Override parent's createClient() factory method to create Vertex AI client

      This factory method is called lazily on first use, so _credentials will always be set. The rest of the functionality (chat, streaming, etc.) remains identical.

      Returns Promise<GoogleGenAI>

    • Extract thinking content from non-streaming content This method handles case-insensitive extraction of thinking blocks

      Parameters

      • content: string

      Returns { content: string; thinking?: string }

    • Create the final response from streaming results for Gemini

      Parameters

      • accumulatedContent: string
      • lastChunk: any
      • usage: any

      Returns ChatResult

    • Parameters

      • messages: Content[]

      Returns Content[]

    • Get the thinking tag format for this provider Providers can override this to customize the thinking tag format

      Returns { close: string; open: string }

    • Template method for handling streaming chat completion This implements the common pattern across providers while delegating provider-specific logic to abstract methods.

      Parameters

      Returns Promise<ChatResult>

    • Initialize thinking stream state for streaming extraction

      Returns void

    • Process streaming chunk with thinking extraction This method handles case-insensitive extraction across chunk boundaries

      Parameters

      • rawContent: string

      Returns string

    • Process a streaming chunk from Gemini

      Parameters

      • chunk: any

      Returns { content: string; finishReason?: string; usage?: any }

    • Reset streaming state for a new request

      Returns void

    • Reset thinking stream state

      Returns void

    • Set additional provider-specific settings Subclasses should override this method to validate required settings

      Parameters

      • settings: Record<string, any>

        Provider-specific settings

      Returns void

    • Check if the provider supports thinking models Providers should override this to return true if they support thinking extraction

      Returns boolean