From 93862838bd8638cf1ec455a35cea1f3989b3d47c Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Fri, 25 Apr 2025 14:24:21 +0200 Subject: [PATCH] assistant: Fix issue when using inline assistant with Gemini models (#29407) Closes #29020 Release Notes: - assistant: Fix issue when using inline assistant with Gemini models --- .../assistant_context_editor/src/context.rs | 4 +++- crates/language_models/src/provider/google.rs | 21 ++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/crates/assistant_context_editor/src/context.rs b/crates/assistant_context_editor/src/context.rs index 398a6659e13bd6b01fb51d7ea9047c666800a308..3c8548022ed3a3837ba380737dbdabcc4a3d9476 100644 --- a/crates/assistant_context_editor/src/context.rs +++ b/crates/assistant_context_editor/src/context.rs @@ -2611,7 +2611,9 @@ impl AssistantContext { .map(MessageContent::Text), ); - completion_request.messages.push(request_message); + if !request_message.contents_empty() { + completion_request.messages.push(request_message); + } } if let RequestType::SuggestEdits = request_type { diff --git a/crates/language_models/src/provider/google.rs b/crates/language_models/src/provider/google.rs index c5035f0827a28157df493d5b0dc7e7ea20ccff85..1b25eade5af9a03b1c88c0d7bb81df4045251ed3 100644 --- a/crates/language_models/src/provider/google.rs +++ b/crates/language_models/src/provider/google.rs @@ -442,13 +442,20 @@ pub fn into_google( contents: request .messages .into_iter() - .map(|message| google_ai::Content { - parts: map_content(message.content), - role: match message.role { - Role::User => google_ai::Role::User, - Role::Assistant => google_ai::Role::Model, - Role::System => google_ai::Role::User, // Google AI doesn't have a system role - }, + .filter_map(|message| { + let parts = map_content(message.content); + if parts.is_empty() { + None + } else { + Some(google_ai::Content { + parts, + role: match message.role { + Role::User => google_ai::Role::User, + Role::Assistant => google_ai::Role::Model, + Role::System => google_ai::Role::User, // Google AI doesn't have a system role + }, + }) + } }) .collect(), generation_config: Some(google_ai::GenerationConfig {