pub struct GeminiProvider { /* private fields */ }gemini only.Expand description
Google Gemini LLM provider.
Implementations§
Source§impl GeminiProvider
impl GeminiProvider
Sourcepub const API_KEY_ENV: &'static str = "GEMINI_API_KEY"
pub const API_KEY_ENV: &'static str = "GEMINI_API_KEY"
The conventional environment variable holding the Gemini API key.
Sourcepub fn new(
api_key: impl Into<String>,
model: impl Into<String>,
) -> GeminiProvider
pub fn new( api_key: impl Into<String>, model: impl Into<String>, ) -> GeminiProvider
Create a new Gemini provider with the specified API key and model.
Sourcepub fn from_env() -> GeminiProvider
pub fn from_env() -> GeminiProvider
Create a provider using Gemini Flash, reading the API key from the
conventional GEMINI_API_KEY environment variable.
§Panics
Panics if GEMINI_API_KEY is not set. Prefer
try_from_env outside of examples/tests.
Sourcepub fn try_from_env() -> Result<GeminiProvider, Error>
pub fn try_from_env() -> Result<GeminiProvider, Error>
Create a provider using Gemini Flash, reading the API key from the
conventional GEMINI_API_KEY environment variable.
§Errors
Returns an error if GEMINI_API_KEY is unset or not valid UTF-8.
Sourcepub fn flash(api_key: impl Into<String>) -> GeminiProvider
pub fn flash(api_key: impl Into<String>) -> GeminiProvider
Create a provider using Gemini 3 Flash Preview (fast and capable, current default).
Sourcepub fn flash_lite_31(api_key: String) -> GeminiProvider
pub fn flash_lite_31(api_key: String) -> GeminiProvider
Create a provider using Gemini 3.1 Flash Lite Preview.
Sourcepub fn flash_lite(api_key: String) -> GeminiProvider
pub fn flash_lite(api_key: String) -> GeminiProvider
Create a provider using Gemini 2.0 Flash Lite (fastest, most cost-effective).
Sourcepub fn pro_31(api_key: String) -> GeminiProvider
pub fn pro_31(api_key: String) -> GeminiProvider
Create a provider using Gemini 3.1 Pro Preview.
Sourcepub fn pro(api_key: String) -> GeminiProvider
pub fn pro(api_key: String) -> GeminiProvider
Create a provider using Gemini 3.1 Pro Preview (current recommended pro model).
Sourcepub const fn with_thinking(self, thinking: ThinkingConfig) -> GeminiProvider
pub const fn with_thinking(self, thinking: ThinkingConfig) -> GeminiProvider
Set the provider-owned thinking configuration for this model.
Sourcepub fn with_base_url(self, base_url: impl Into<String>) -> GeminiProvider
pub fn with_base_url(self, base_url: impl Into<String>) -> GeminiProvider
Override the base URL.
Sourcepub const fn with_header_auth(self) -> GeminiProvider
pub const fn with_header_auth(self) -> GeminiProvider
Send the API key via x-goog-api-key header instead of ?key= query
parameter. Required when routing through proxies.
Sourcepub fn with_extra_headers(
self,
headers: Vec<(String, String)>,
) -> GeminiProvider
pub fn with_extra_headers( self, headers: Vec<(String, String)>, ) -> GeminiProvider
Add extra HTTP headers applied to every request.
Trait Implementations§
Source§impl Clone for GeminiProvider
impl Clone for GeminiProvider
Source§fn clone(&self) -> GeminiProvider
fn clone(&self) -> GeminiProvider
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl LlmProvider for GeminiProvider
impl LlmProvider for GeminiProvider
Source§fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatOutcome, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GeminiProvider: 'async_trait,
fn chat<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatOutcome, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
GeminiProvider: 'async_trait,
Source§fn chat_stream(
&self,
request: ChatRequest,
) -> Pin<Box<dyn Stream<Item = Result<StreamDelta, Error>> + Send + '_>>
fn chat_stream( &self, request: ChatRequest, ) -> Pin<Box<dyn Stream<Item = Result<StreamDelta, Error>> + Send + '_>>
fn model(&self) -> &str
fn provider(&self) -> &'static str
Source§fn configured_thinking(&self) -> Option<&ThinkingConfig>
fn configured_thinking(&self) -> Option<&ThinkingConfig>
Source§fn capabilities(&self) -> Option<&'static ModelCapabilities>
fn capabilities(&self) -> Option<&'static ModelCapabilities>
Source§fn validate_thinking_config(
&self,
thinking: Option<&ThinkingConfig>,
) -> Result<(), Error>
fn validate_thinking_config( &self, thinking: Option<&ThinkingConfig>, ) -> Result<(), Error>
Source§fn resolve_thinking_config(
&self,
request_thinking: Option<&ThinkingConfig>,
) -> Result<Option<ThinkingConfig>, Error>
fn resolve_thinking_config( &self, request_thinking: Option<&ThinkingConfig>, ) -> Result<Option<ThinkingConfig>, Error>
Source§fn default_max_tokens(&self) -> u32
fn default_max_tokens(&self) -> u32
AgentConfig.max_tokens.Source§fn structured_output_support(&self) -> StructuredOutputSupport
fn structured_output_support(&self) -> StructuredOutputSupport
ResponseFormat) request. Read more