diff --git a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java index 268cbf3ae94..6b9ad92af33 100644 --- a/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java +++ b/models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java @@ -16,6 +16,7 @@ package org.springframework.ai.vertexai.gemini; +import com.google.cloud.vertexai.api.Tool.GoogleSearch; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -713,10 +714,8 @@ GeminiRequest createGeminiRequest(Prompt prompt) { } if (prompt.getOptions() instanceof VertexAiGeminiChatOptions options && options.getGoogleSearchRetrieval()) { - final var googleSearchRetrieval = GoogleSearchRetrieval.newBuilder().getDefaultInstanceForType(); - final var googleSearchRetrievalTool = Tool.newBuilder() - .setGoogleSearchRetrieval(googleSearchRetrieval) - .build(); + var googleSearch = GoogleSearch.newBuilder().getDefaultInstanceForType(); + final var googleSearchRetrievalTool = Tool.newBuilder().setGoogleSearch(googleSearch).build(); tools.add(googleSearchRetrievalTool); } @@ -969,7 +968,7 @@ public enum ChatModel implements ChatModelDescription { GEMINI_2_0_FLASH_LIGHT("gemini-2.0-flash-lite"), - GEMINI_2_5_PRO("gemini-2.5-pro-exp-03-28"); + GEMINI_2_5_PRO("gemini-2.5-pro-exp-03-25"); public final String value; diff --git a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java index 176cf111f22..78575f7dbd8 100644 --- a/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java +++ b/models/spring-ai-vertex-ai-gemini/src/test/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModelIT.java @@ -88,17 +88,28 @@ void testMessageHistory() { assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard", "Bartholomew"); } + // Test disabled until Gemini 2.5 PRO has an official release + @Disabled @Test - void googleSearchTool() { + void googleSearchToolPro() { Prompt prompt = createPrompt(VertexAiGeminiChatOptions.builder() - .model(ChatModel.GEMINI_1_5_PRO) // Only the pro model supports the google - // search tool + .model(ChatModel.GEMINI_2_5_PRO) .googleSearchRetrieval(true) .build()); ChatResponse response = this.chatModel.call(prompt); assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard", "Bartholomew"); } + @Test + void googleSearchToolFlash() { + Prompt prompt = createPrompt(VertexAiGeminiChatOptions.builder() + .model(ChatModel.GEMINI_2_0_FLASH) + .googleSearchRetrieval(true) + .build()); + ChatResponse response = this.chatModel.call(prompt); + assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard", "Bartholomew", "Bob"); + } + @Test @Disabled void testSafetySettings() { diff --git a/pom.xml b/pom.xml index 3976c81240d..ffc21c360df 100644 --- a/pom.xml +++ b/pom.xml @@ -268,7 +268,7 @@ 0.30.0 1.19.2 3.51.0 - 26.48.0 + 26.59.0 9.20.0 4.37.0 2.2.25