From 7c0663b825c434c493f2d158f8448fb4eff9e9b2 Mon Sep 17 00:00:00 2001 From: Martin Bergo Date: Wed, 19 Nov 2025 00:51:32 +0100 Subject: [PATCH] google_ai: Add gemini-3-pro-preview model (#43015) Release Notes: - Added the newly released Gemini 3 Pro Preview Model https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-pro --- crates/google_ai/src/google_ai.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/google_ai/src/google_ai.rs b/crates/google_ai/src/google_ai.rs index 84f8e8ef8dbaac1d55f73515f625b670a4a52709..941f58fc13372114fee7731b2b9bbf69c8e10619 100644 --- a/crates/google_ai/src/google_ai.rs +++ b/crates/google_ai/src/google_ai.rs @@ -521,6 +521,8 @@ pub enum Model { alias = "gemini-2.5-pro-preview-06-05" )] Gemini25Pro, + #[serde(rename = "gemini-3-pro-preview")] + Gemini3ProPreview, #[serde(rename = "custom")] Custom { name: String, @@ -547,6 +549,7 @@ impl Model { Self::Gemini25FlashLitePreview => "gemini-2.5-flash-lite-preview", Self::Gemini25Flash => "gemini-2.5-flash", Self::Gemini25Pro => "gemini-2.5-pro", + Self::Gemini3ProPreview => "gemini-3-pro-preview", Self::Custom { name, .. } => name, } } @@ -560,6 +563,7 @@ impl Model { Self::Gemini25FlashLitePreview => "gemini-2.5-flash-lite-preview-06-17", Self::Gemini25Flash => "gemini-2.5-flash", Self::Gemini25Pro => "gemini-2.5-pro", + Self::Gemini3ProPreview => "gemini-3-pro-preview", Self::Custom { name, .. } => name, } } @@ -574,6 +578,7 @@ impl Model { Self::Gemini25FlashLitePreview => "Gemini 2.5 Flash-Lite Preview", Self::Gemini25Flash => "Gemini 2.5 Flash", Self::Gemini25Pro => "Gemini 2.5 Pro", + Self::Gemini3ProPreview => "Gemini 3 Pro Preview", Self::Custom { name, display_name, .. } => display_name.as_ref().unwrap_or(name), @@ -590,6 +595,7 @@ impl Model { Self::Gemini25FlashLitePreview => 1_000_000, Self::Gemini25Flash => 1_048_576, Self::Gemini25Pro => 1_048_576, + Self::Gemini3ProPreview => 1_048_576, Self::Custom { max_tokens, .. } => *max_tokens, } } @@ -604,6 +610,7 @@ impl Model { Model::Gemini25FlashLitePreview => Some(64_000), Model::Gemini25Flash => Some(65_536), Model::Gemini25Pro => Some(65_536), + Model::Gemini3ProPreview => Some(65_536), Model::Custom { .. } => None, } } @@ -623,7 +630,10 @@ impl Model { | Self::Gemini15Flash | Self::Gemini20FlashLite | Self::Gemini20Flash => GoogleModelMode::Default, - Self::Gemini25FlashLitePreview | Self::Gemini25Flash | Self::Gemini25Pro => { + Self::Gemini25FlashLitePreview + | Self::Gemini25Flash + | Self::Gemini25Pro + | Self::Gemini3ProPreview => { GoogleModelMode::Thinking { // By default these models are set to "auto", so we preserve that behavior // but indicate they are capable of thinking mode