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 GeminigenerationConfigfields:tool_config- Raw GeminitoolConfig:safety_settings- Raw GeminisafetySettings: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
@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.