diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/pom.xml new file mode 100644 index 000000000..61980a98f --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/pom.xml @@ -0,0 +1,81 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-azure-cosmos-db + jar + Spring AI Auto Configuration for Azure Cosmos DB vector store + Spring AI Auto Configuration for Azure Cosmos DB vector store + https://github.com/spring-projects/spring-ai + + + https://github.com/spring-projects/spring-ai + git://github.com/spring-projects/spring-ai.git + git@github.com:spring-projects/spring-ai.git + + + + + + org.springframework.ai + spring-ai-azure-cosmos-db-store + ${project.parent.version} + true + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.springframework.ai + spring-ai-test + ${project.parent.version} + test + + + org.springframework.boot + spring-boot-starter-test + test + + + org.awaitility + awaitility + test + + + org.springframework.ai + spring-ai-transformers + ${project.parent.version} + test + + + diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfiguration.java similarity index 97% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfiguration.java index 5a1ff2f8f..9f3609ef6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.cosmosdb; +package org.springframework.ai.vectorstore.cosmosdb.autoconfigure; import com.azure.cosmos.CosmosAsyncClient; import com.azure.cosmos.CosmosClientBuilder; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreProperties.java similarity index 97% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreProperties.java index 1c4382a0c..644df9322 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.cosmosdb; +package org.springframework.ai.vectorstore.cosmosdb.autoconfigure; import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..70a161c22 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,16 @@ +# +# Copyright 2025-2025 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +org.springframework.ai.vectorstore.cosmosdb.autoconfigure.CosmosDBVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/test/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfigurationIT.java similarity index 99% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/test/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfigurationIT.java index f1fab9f74..1912e1409 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db/src/test/java/org/springframework/ai/vectorstore/cosmosdb/autoconfigure/CosmosDBVectorStoreAutoConfigurationIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.cosmosdb; +package org.springframework.ai.vectorstore.cosmosdb.autoconfigure; import java.util.HashMap; import java.util.List; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/pom.xml new file mode 100644 index 000000000..71bd6add3 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/pom.xml @@ -0,0 +1,81 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-azure + jar + Spring AI Auto Configuration for Azure vector store + Spring AI Auto Configuration for Azure vector store + https://github.com/spring-projects/spring-ai + + + https://github.com/spring-projects/spring-ai + git://github.com/spring-projects/spring-ai.git + git@github.com:spring-projects/spring-ai.git + + + + + + org.springframework.ai + spring-ai-azure-store + ${project.parent.version} + true + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.springframework.ai + spring-ai-test + ${project.parent.version} + test + + + org.springframework.boot + spring-boot-starter-test + test + + + org.awaitility + awaitility + test + + + org.springframework.ai + spring-ai-transformers + ${project.parent.version} + test + + + diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfiguration.java similarity index 98% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfiguration.java index 1d30c15c7..efd07c513 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.azure; +package org.springframework.ai.vectorstore.azure.autoconfigure; import java.util.List; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreProperties.java similarity index 97% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreProperties.java index 3afd114d6..cafde9578 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.azure; +package org.springframework.ai.vectorstore.azure.autoconfigure; import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.azure.AzureVectorStore; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..62e6456f1 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,16 @@ +# +# Copyright 2025-2025 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +org.springframework.ai.vectorstore.azure.autoconfigure.AzureVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/test/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfigurationIT.java similarity index 89% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/test/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfigurationIT.java index edf6d3a2c..66ba09fa6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure/src/test/java/org/springframework/ai/vectorstore/azure/autoconfigure/AzureVectorStoreAutoConfigurationIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.azure; +package org.springframework.ai.vectorstore.azure.autoconfigure; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -45,6 +45,7 @@ import org.springframework.core.io.DefaultResourceLoader; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.Matchers.hasSize; +import static org.springframework.ai.test.vectorstore.ObservationTestUtil.assertObservationRegistry; /** * @author Christian Tzolov @@ -112,9 +113,8 @@ public class AzureVectorStoreAutoConfigurationIT { .until(() -> vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(1).build()), hasSize(1)); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil - .assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, - VectorStoreObservationContext.Operation.ADD); + assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, + VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); List results = vectorStore @@ -128,9 +128,8 @@ public class AzureVectorStoreAutoConfigurationIT { assertThat(resultDoc.getMetadata()).hasSize(2); assertThat(resultDoc.getMetadata()).containsKeys("spring", "distance"); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil - .assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, - VectorStoreObservationContext.Operation.QUERY); + assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, + VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); // Remove all documents from the store @@ -140,9 +139,8 @@ public class AzureVectorStoreAutoConfigurationIT { .until(() -> vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(1).build()), hasSize(0)); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil - .assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, - VectorStoreObservationContext.Operation.DELETE); + assertObservationRegistry(observationRegistry, VectorStoreProvider.AZURE, + VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); }); diff --git a/pom.xml b/pom.xml index 69fc7e8a7..ce9c382ee 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,8 @@ auto-configurations/mcp/spring-ai-autoconfigure-mcp-client auto-configurations/mcp/spring-ai-autoconfigure-mcp-server + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-cassandra auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-chroma auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch @@ -118,11 +120,11 @@ vector-stores/spring-ai-typesense-store vector-stores/spring-ai-weaviate-store - spring-ai-spring-boot-starters/spring-ai-starter-azure-cosmos-db-store - spring-ai-spring-boot-starters/spring-ai-starter-azure-store spring-ai-spring-boot-starters/spring-ai-starter-coherence-store spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store spring-ai-spring-boot-starters/spring-ai-starter-vector-store-aws-opensearch + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db spring-ai-spring-boot-starters/spring-ai-starter-vector-store-cassandra spring-ai-spring-boot-starters/spring-ai-starter-vector-store-chroma spring-ai-spring-boot-starters/spring-ai-starter-vector-store-elasticsearch diff --git a/spring-ai-spring-boot-autoconfigure/pom.xml b/spring-ai-spring-boot-autoconfigure/pom.xml index 2c441fb2b..3cb3683fe 100644 --- a/spring-ai-spring-boot-autoconfigure/pom.xml +++ b/spring-ai-spring-boot-autoconfigure/pom.xml @@ -132,14 +132,6 @@ true - - - org.springframework.ai - spring-ai-azure-store - ${project.parent.version} - true - - org.springframework.ai diff --git a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 730d3ce21..b3465f2e1 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -29,8 +29,6 @@ org.springframework.ai.autoconfigure.embedding.observation.EmbeddingObservationA org.springframework.ai.autoconfigure.image.observation.ImageObservationAutoConfiguration org.springframework.ai.model.ollama.autoconfigure.OllamaAutoConfiguration org.springframework.ai.model.mistralai.autoconfigure.MistralAiAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.azure.AzureVectorStoreAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.cosmosdb.CosmosDBVectorStoreAutoConfiguration org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration org.springframework.ai.model.postgresml.autoconfigure.PostgresMlAutoConfiguration org.springframework.ai.model.anthropic.autoconfigure.AnthropicAutoConfiguration diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-azure-cosmos-db-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db/pom.xml similarity index 89% rename from spring-ai-spring-boot-starters/spring-ai-starter-azure-cosmos-db-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db/pom.xml index e2c3ec1cc..115da874a 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-azure-cosmos-db-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db/pom.xml @@ -23,10 +23,10 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-azure-cosmos-db-store-spring-boot-starter + spring-ai-starter-vector-store-azure-cosmos-db jar Spring AI Starter - Azure Cosmos DB Vector Store - Spring AI Azure Cosmos DB Vector Store Auto Configuration + Spring AI Azure Cosmos DB Vector Store Starter https://github.com/spring-projects/spring-ai @@ -44,7 +44,7 @@ org.springframework.ai - spring-ai-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-azure-cosmos-db ${project.parent.version} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-azure-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure/pom.xml similarity index 90% rename from spring-ai-spring-boot-starters/spring-ai-starter-azure-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure/pom.xml index f5face502..dc1794c3d 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-azure-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure/pom.xml @@ -23,10 +23,10 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-azure-store-spring-boot-starter + spring-ai-starter-vector-store-azure jar Spring AI Starter - Azure Vector Store - Spring AI Azure Vector Store Auto Configuration + Spring AI Azure Vector Store Starter https://github.com/spring-projects/spring-ai @@ -44,7 +44,7 @@ org.springframework.ai - spring-ai-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-azure ${project.parent.version}