Skip to content

Google Gemini

Overview

This module adds support for selected Google Gemini models.

Maven Coordinates

In addition to the Helidon integration with LangChain4j core dependencies, you must add the following:

xml
<dependency>
    <groupId>io.helidon.integrations.langchain4j.providers</groupId>
    <artifactId>helidon-integrations-langchain4j-providers-google-gemini</artifactId>
</dependency>

Components

GoogleAiGeminiChatModel

To automatically create and add GoogleAiGeminiChatModel to the service registry add the following lines to application.yaml:

yaml
langchain4j:
  providers:
    google-gemini:
      api-key: "${GEMINI_TOKEN}"

  models:
    gemini-chat-model:
      provider: google-gemini
      model-name: "gemini-2.0-flash"

If enabled is set to false, the configuration is ignored, and the component is not created.

Configuration options

KeyKindTypeDefault ValueDescription
allow-code-executionVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowCodeExecution(java.lang.Boolean)
allow-google-mapsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowGoogleMaps(java.lang.Boolean)
allow-google-searchVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowGoogleSearch(java.lang.Boolean)
allow-url-contextVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowUrlContext(java.lang.Boolean)
api-keyVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#apiKey(java.lang.String)
base-urlVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#baseUrl(java.lang.String)
default-request-parametersVALUEd.l.m.c.r.ChatRequestParametersGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#defaultRequestParameters(dev.langchain4j.model.chat.request.ChatRequestParameters)
default-request-parameters-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for default-request-parameters
enable-enhanced-civic-answersVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#enableEnhancedCivicAnswers(java.lang.Boolean)
enabledVALUEBooleantrueIf set to false, GoogleAiGeminiChatModel will not be available even if configured
frequency-penaltyVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#frequencyPenalty(java.lang.Double)
http-client-builderVALUEd.l.h.c.HttpClientBuilderGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#httpClientBuilder(dev.langchain4j.http.client.HttpClientBuilder)
http-client-builder-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for http-client-builder
include-code-execution-outputVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#includeCodeExecutionOutput(java.lang.Boolean)
listenersLISTd.l.m.c.l.ChatModelListenerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#listeners(java.util.List)
listeners-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for listeners
log-requestsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logRequests(java.lang.Boolean)
log-requests-and-responsesVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logRequestsAndResponses(java.lang.Boolean)
log-responsesVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logResponses(java.lang.Boolean)
loggerVALUEo.s.LoggerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logger(org.slf4j.Logger)
logprobsVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logprobs(java.lang.Integer)
max-output-tokensVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#maxOutputTokens(java.lang.Integer)
max-retriesVALUEIntegerGenerated from dev.langchain4j.model.googleai.GoogleAiGeminiChatModel.GoogleAiGeminiChatModelBuilder#maxRetries(java.lang.Integer)
media-resolutionVALUEd.l.m.g.GeminiMediaResolutionLevelGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#mediaResolution(dev.langchain4j.model.googleai.GeminiMediaResolutionLevel)
media-resolution-per-part-enabledVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#mediaResolutionPerPartEnabled(java.lang.Boolean)
model-nameVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#modelName(java.lang.String)
presence-penaltyVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#presencePenalty(java.lang.Double)
response-formatVALUEd.l.m.c.r.ResponseFormatGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#responseFormat(dev.langchain4j.model.chat.request.ResponseFormat)
response-logprobsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#responseLogprobs(java.lang.Boolean)
retrieve-google-maps-widget-tokenVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#retrieveGoogleMapsWidgetToken(java.lang.Boolean)
return-thinkingVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#returnThinking(java.lang.Boolean)
safety-settingsLISTd.l.m.g.GeminiSafetySettingSafety setting, affecting the safety-blocking behavior
seedVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#seed(java.lang.Integer)
send-thinkingVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#sendThinking(java.lang.Boolean)
stop-sequencesLISTStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#stopSequences(java.util.List)
supported-capabilitiesLISTd.l.m.c.CapabilityGenerated from dev.langchain4j.model.googleai.GoogleAiGeminiChatModel.GoogleAiGeminiChatModelBuilder#supportedCapabilities(java.util.Set)
temperatureVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#temperature(java.lang.Double)
thinking-configVALUEd.l.m.g.GeminiThinkingConfigGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#thinkingConfig(dev.langchain4j.model.googleai.GeminiThinkingConfig)
timeoutVALUEDurationGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#timeout(java.time.Duration)
tool-configVALUEd.l.m.g.GeminiFunctionCallingConfigGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#toolConfig(dev.langchain4j.model.googleai.GeminiFunctionCallingConfig)
top-kVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#topK(java.lang.Integer)
top-pVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#topP(java.lang.Double)

GoogleAiGeminiStreamingChatModel

To automatically create and add GoogleAiGeminiStreamingChatModel to the service registry add the following lines to application.yaml:

yaml
langchain4j:
  providers:
    google-gemini:
      api-key: "${GEMINI_TOKEN}"

  models:
    gemini-streaming-chat-model:
      provider: google-gemini
      model-name: "gemini-2.0-flash"

If enabled is set to false, the configuration is ignored, and the component is not created.

Configuration options

KeyKindTypeDefault ValueDescription
allow-code-executionVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowCodeExecution(java.lang.Boolean)
allow-google-mapsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowGoogleMaps(java.lang.Boolean)
allow-google-searchVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowGoogleSearch(java.lang.Boolean)
allow-url-contextVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#allowUrlContext(java.lang.Boolean)
api-keyVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#apiKey(java.lang.String)
base-urlVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#baseUrl(java.lang.String)
default-request-parametersVALUEd.l.m.c.r.ChatRequestParametersGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#defaultRequestParameters(dev.langchain4j.model.chat.request.ChatRequestParameters)
default-request-parameters-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for default-request-parameters
enable-enhanced-civic-answersVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#enableEnhancedCivicAnswers(java.lang.Boolean)
enabledVALUEBooleantrueIf set to false, GoogleAiGeminiStreamingChatModel will not be available even if configured
frequency-penaltyVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#frequencyPenalty(java.lang.Double)
http-client-builderVALUEd.l.h.c.HttpClientBuilderGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#httpClientBuilder(dev.langchain4j.http.client.HttpClientBuilder)
http-client-builder-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for http-client-builder
include-code-execution-outputVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#includeCodeExecutionOutput(java.lang.Boolean)
listenersLISTd.l.m.c.l.ChatModelListenerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#listeners(java.util.List)
listeners-discover-servicesVALUEBooleantrueWhether to enable automatic service discovery for listeners
log-requestsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logRequests(java.lang.Boolean)
log-requests-and-responsesVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logRequestsAndResponses(java.lang.Boolean)
log-responsesVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logResponses(java.lang.Boolean)
loggerVALUEo.s.LoggerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logger(org.slf4j.Logger)
logprobsVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#logprobs(java.lang.Integer)
max-output-tokensVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#maxOutputTokens(java.lang.Integer)
media-resolutionVALUEd.l.m.g.GeminiMediaResolutionLevelGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#mediaResolution(dev.langchain4j.model.googleai.GeminiMediaResolutionLevel)
media-resolution-per-part-enabledVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#mediaResolutionPerPartEnabled(java.lang.Boolean)
model-nameVALUEStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#modelName(java.lang.String)
presence-penaltyVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#presencePenalty(java.lang.Double)
response-formatVALUEd.l.m.c.r.ResponseFormatGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#responseFormat(dev.langchain4j.model.chat.request.ResponseFormat)
response-logprobsVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#responseLogprobs(java.lang.Boolean)
retrieve-google-maps-widget-tokenVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#retrieveGoogleMapsWidgetToken(java.lang.Boolean)
return-thinkingVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#returnThinking(java.lang.Boolean)
safety-settingsLISTd.l.m.g.GeminiSafetySettingSafety setting, affecting the safety-blocking behavior
seedVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#seed(java.lang.Integer)
send-thinkingVALUEBooleanGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#sendThinking(java.lang.Boolean)
stop-sequencesLISTStringGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#stopSequences(java.util.List)
temperatureVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#temperature(java.lang.Double)
thinking-configVALUEd.l.m.g.GeminiThinkingConfigGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#thinkingConfig(dev.langchain4j.model.googleai.GeminiThinkingConfig)
timeoutVALUEDurationGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#timeout(java.time.Duration)
tool-configVALUEd.l.m.g.GeminiFunctionCallingConfigGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#toolConfig(dev.langchain4j.model.googleai.GeminiFunctionCallingConfig)
top-kVALUEIntegerGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#topK(java.lang.Integer)
top-pVALUEDoubleGenerated from dev.langchain4j.model.googleai.BaseGeminiChatModel.GoogleAiGeminiChatModelBaseBuilder#topP(java.lang.Double)

Additional Information