Alloy.Provider.Gemini (alloy v0.12.4)

Copy Markdown View Source

Provider for Google's Gemini GenerateContent API.

Normalizes Gemini's contents / parts wire format to Alloy messages, including function calling and thinking-part round-tripping.

Config

Required:

  • :api_key - Gemini API key
  • :model - Model name (for example "gemini-2.5-flash")

Optional:

  • :max_tokens - Max output tokens (default: 4096)
  • :system_prompt - System prompt string
  • :api_url - Base URL (default: "https://generativelanguage.googleapis.com")
  • :api_version - API version path (default: "v1beta")
  • :generation_config - Raw Gemini generationConfig fields
  • :tool_config - Raw Gemini toolConfig
  • :safety_settings - Raw Gemini safetySettings
  • :extra_headers - Additional headers as [{name, value}]
  • :req_options - Additional options passed to Req

Example

Alloy.run("Summarize this code.",
  provider: {Alloy.Provider.Gemini,
    api_key: System.get_env("GEMINI_API_KEY"),
    model: "gemini-2.5-flash"
  }
)

Summary

Types

Configuration for the Gemini provider. See the module doc for field semantics.

Types

config()

@type config() :: %{
  :api_key => String.t(),
  :model => String.t(),
  optional(:max_tokens) => pos_integer(),
  optional(:system_prompt) => String.t(),
  optional(:api_url) => String.t(),
  optional(:api_version) => String.t(),
  optional(:generation_config) => map(),
  optional(:tool_config) => map(),
  optional(:safety_settings) => [map()],
  optional(:extra_headers) => [{String.t(), String.t()}],
  optional(:req_options) => keyword()
}

Configuration for the Gemini provider. See the module doc for field semantics.