diff --git a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java index d3b66dfacbc..20163e0078e 100644 --- a/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java +++ b/models/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingModel.java @@ -130,7 +130,7 @@ BedrockCohereEmbeddingOptions mergeOptions(EmbeddingOptions requestOptions) { .truncate(CohereEmbeddingRequest.Truncate.NONE) .build(); - if (requestOptions != null && !EmbeddingOptions.EMPTY.equals(requestOptions)) { + if (requestOptions != null) { options = ModelOptionsUtils.merge(requestOptions, options, BedrockCohereEmbeddingOptions.class); } diff --git a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java index 7e8fb3ab459..0a977545583 100644 --- a/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java +++ b/models/spring-ai-postgresml/src/main/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModel.java @@ -151,7 +151,7 @@ PostgresMlEmbeddingOptions mergeOptions(EmbeddingOptions requestOptions) { PostgresMlEmbeddingOptions options = (this.defaultOptions != null) ? this.defaultOptions : PostgresMlEmbeddingOptions.builder().build(); - if (requestOptions != null && !EmbeddingOptions.EMPTY.equals(requestOptions)) { + if (requestOptions != null) { options = ModelOptionsUtils.merge(requestOptions, options, PostgresMlEmbeddingOptions.class); } diff --git a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java index e6e6c90ad80..f682823d41a 100644 --- a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java +++ b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingModelIT.java @@ -33,7 +33,7 @@ import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; -import org.springframework.ai.embedding.EmbeddingOptions; +import org.springframework.ai.embedding.EmbeddingOptionsBuilder; import org.springframework.ai.embedding.EmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResponseMetadata; @@ -179,7 +179,8 @@ void embedCallWithRequestOptionsOverride() { true); embeddingModel.afterPropertiesSet(); - var request1 = new EmbeddingRequest(List.of("Hello World!", "Spring AI!", "LLM!"), EmbeddingOptions.EMPTY); + var request1 = new EmbeddingRequest(List.of("Hello World!", "Spring AI!", "LLM!"), + EmbeddingOptionsBuilder.builder().build()); EmbeddingResponse embeddingResponse = embeddingModel.call(request1); diff --git a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java index d7d4b28315f..f39630761bf 100644 --- a/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java +++ b/models/spring-ai-postgresml/src/test/java/org/springframework/ai/postgresml/PostgresMlEmbeddingOptionsTests.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import org.springframework.ai.embedding.EmbeddingOptions; +import org.springframework.ai.embedding.EmbeddingOptionsBuilder; import org.springframework.jdbc.core.JdbcTemplate; import static org.assertj.core.api.Assertions.assertThat; @@ -62,7 +62,7 @@ public void mergeOptions() { var jdbcTemplate = Mockito.mock(JdbcTemplate.class); PostgresMlEmbeddingModel embeddingModel = new PostgresMlEmbeddingModel(jdbcTemplate); - PostgresMlEmbeddingOptions options = embeddingModel.mergeOptions(EmbeddingOptions.EMPTY); + PostgresMlEmbeddingOptions options = embeddingModel.mergeOptions(EmbeddingOptionsBuilder.builder().build()); // Default options assertThat(options.getTransformer()).isEqualTo(PostgresMlEmbeddingModel.DEFAULT_TRANSFORMER_MODEL); diff --git a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java index f623794ce82..d0a7508debe 100644 --- a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java +++ b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/multimodal/VertexAiMultimodalEmbeddingModel.java @@ -37,7 +37,6 @@ import org.springframework.ai.embedding.DocumentEmbeddingModel; import org.springframework.ai.embedding.DocumentEmbeddingRequest; import org.springframework.ai.embedding.Embedding; -import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResponseMetadata; import org.springframework.ai.embedding.EmbeddingResultMetadata; @@ -101,7 +100,7 @@ public EmbeddingResponse call(DocumentEmbeddingRequest request) { // merge the runtime and default vertex ai options. VertexAiMultimodalEmbeddingOptions mergedOptions = this.defaultOptions; - if (request.getOptions() != null && request.getOptions() != EmbeddingOptions.EMPTY) { + if (request.getOptions() != null) { var defaultOptionsCopy = VertexAiMultimodalEmbeddingOptions.builder().from(this.defaultOptions).build(); mergedOptions = ModelOptionsUtils.merge(request.getOptions(), defaultOptionsCopy, VertexAiMultimodalEmbeddingOptions.class); diff --git a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/text/VertexAiTextEmbeddingModel.java b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/text/VertexAiTextEmbeddingModel.java index cf92d66ff57..2e839736472 100644 --- a/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/text/VertexAiTextEmbeddingModel.java +++ b/models/spring-ai-vertex-ai-embedding/src/main/java/org/springframework/ai/vertexai/embedding/text/VertexAiTextEmbeddingModel.java @@ -34,7 +34,6 @@ import org.springframework.ai.document.Document; import org.springframework.ai.embedding.AbstractEmbeddingModel; import org.springframework.ai.embedding.Embedding; -import org.springframework.ai.embedding.EmbeddingOptions; import org.springframework.ai.embedding.EmbeddingRequest; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResponseMetadata; @@ -167,7 +166,7 @@ private VertexAiTextEmbeddingOptions mergedOptions(EmbeddingRequest request) { VertexAiTextEmbeddingOptions mergedOptions = this.defaultOptions; - if (request.getOptions() != null && request.getOptions() != EmbeddingOptions.EMPTY) { + if (request.getOptions() != null) { var defaultOptionsCopy = VertexAiTextEmbeddingOptions.builder().from(this.defaultOptions).build(); mergedOptions = ModelOptionsUtils.merge(request.getOptions(), defaultOptionsCopy, VertexAiTextEmbeddingOptions.class); diff --git a/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiEmbeddingModelTest.java b/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiEmbeddingModelTest.java index b3001cf22ac..6c61d815f4c 100644 --- a/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiEmbeddingModelTest.java +++ b/models/spring-ai-watsonx-ai/src/test/java/org/springframework/ai/watsonx/WatsonxAiEmbeddingModelTest.java @@ -22,6 +22,7 @@ import org.junit.jupiter.api.Test; import org.springframework.ai.embedding.EmbeddingOptions; +import org.springframework.ai.embedding.EmbeddingOptionsBuilder; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.watsonx.api.WatsonxAiApi; import org.springframework.ai.watsonx.api.WatsonxAiEmbeddingRequest; @@ -73,7 +74,7 @@ void createRequestWithOptionsAndInvalidModel() { void createRequestWithNoOptions() { List inputs = List.of("test"); WatsonxAiEmbeddingRequest request = this.embeddingModel.watsonxAiEmbeddingRequest(inputs, - EmbeddingOptions.EMPTY); + EmbeddingOptionsBuilder.builder().build()); assertThat(request.getModel()).isEqualTo(WatsonxAiEmbeddingOptions.DEFAULT_MODEL); assertThat(request.getInputs().size()).isEqualTo(inputs.size()); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/embedding/VertexAiTextEmbeddingModelAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/embedding/VertexAiTextEmbeddingModelAutoConfigurationIT.java index d5397b56adb..9268b92f6df 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/embedding/VertexAiTextEmbeddingModelAutoConfigurationIT.java +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vertexai/embedding/VertexAiTextEmbeddingModelAutoConfigurationIT.java @@ -25,7 +25,7 @@ import org.springframework.ai.document.Document; import org.springframework.ai.embedding.DocumentEmbeddingRequest; -import org.springframework.ai.embedding.EmbeddingOptions; +import org.springframework.ai.embedding.EmbeddingOptionsBuilder; import org.springframework.ai.embedding.EmbeddingResponse; import org.springframework.ai.embedding.EmbeddingResultMetadata; import org.springframework.ai.vertexai.embedding.multimodal.VertexAiMultimodalEmbeddingModel; @@ -105,7 +105,7 @@ public void multimodalEmbedding() { var document = new Document("Hello World"); DocumentEmbeddingRequest embeddingRequest = new DocumentEmbeddingRequest(List.of(document), - EmbeddingOptions.EMPTY); + EmbeddingOptionsBuilder.builder().build()); EmbeddingResponse embeddingResponse = multiModelEmbeddingModel.call(embeddingRequest); assertThat(embeddingResponse.getResults()).hasSize(1);