diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/pom.xml new file mode 100644 index 000000000..0983d7fcb --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/pom.xml @@ -0,0 +1,101 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-milvus + jar + Spring AI Auto Configuration for Weaviate vector store + Spring AI Auto Configuration for Weaviate 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-milvus-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.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + testcontainers + test + + + org.testcontainers + junit-jupiter + test + + + org.awaitility + awaitility + test + + + org.testcontainers + milvus + 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/milvus/MilvusServiceClientConnectionDetails.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientConnectionDetails.java similarity index 87% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientConnectionDetails.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientConnectionDetails.java index 2a480e9d7..66fee30ca 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientConnectionDetails.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientConnectionDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.milvus; +package org.springframework.ai.vectorstore.milvus.autoconfigure; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientProperties.java similarity index 98% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientProperties.java index 9d677aa2f..13caf1cba 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusServiceClientProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.milvus; +package org.springframework.ai.vectorstore.milvus.autoconfigure; import java.util.concurrent.TimeUnit; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfiguration.java similarity index 98% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfiguration.java index bb432b135..6ba8d36f6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.milvus; +package org.springframework.ai.vectorstore.milvus.autoconfigure; import java.util.concurrent.TimeUnit; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreProperties.java similarity index 96% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreProperties.java index 5e43925d0..8ab62eb94 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.milvus; +package org.springframework.ai.vectorstore.milvus.autoconfigure; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.milvus.MilvusVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.util.Assert; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..d6c7b3039 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/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.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/test/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfigurationIT.java similarity index 89% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/test/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfigurationIT.java index ef27d5564..1b2051b29 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus/src/test/java/org/springframework/ai/vectorstore/milvus/autoconfigure/MilvusVectorStoreAutoConfigurationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.milvus; +package org.springframework.ai.vectorstore.milvus.autoconfigure; import java.util.List; import java.util.Map; @@ -29,6 +29,7 @@ import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.observation.conventions.VectorStoreProvider; +import org.springframework.ai.test.vectorstore.ObservationTestUtil; import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; @@ -39,7 +40,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry; /** * @author Christian Tzolov @@ -79,7 +79,7 @@ public class MilvusVectorStoreAutoConfigurationIT { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -94,7 +94,7 @@ public class MilvusVectorStoreAutoConfigurationIT { assertThat(resultDoc.getMetadata()).hasSize(2); assertThat(resultDoc.getMetadata()).containsKeys("spring", "distance"); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); @@ -104,7 +104,7 @@ public class MilvusVectorStoreAutoConfigurationIT { results = vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(1).build()); assertThat(results).hasSize(0); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); @@ -131,7 +131,7 @@ public class MilvusVectorStoreAutoConfigurationIT { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -146,7 +146,7 @@ public class MilvusVectorStoreAutoConfigurationIT { assertThat(resultDoc.getMetadata()).hasSize(2); assertThat(resultDoc.getMetadata()).containsKeys("spring", "distance"); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); @@ -156,7 +156,7 @@ public class MilvusVectorStoreAutoConfigurationIT { results = vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(1).build()); assertThat(results).hasSize(0); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/pom.xml new file mode 100644 index 000000000..6492d0a7e --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/pom.xml @@ -0,0 +1,96 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-pinecone + jar + Spring AI Auto Configuration for Pinecone vector store + Spring AI Auto Configuration for Pinecone 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-pinecone-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.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + testcontainers + test + + + org.testcontainers + junit-jupiter + 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/pinecone/PineconeVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfiguration.java similarity index 95% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfiguration.java index fb266aecd..e8683d78d 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.pinecone; +package org.springframework.ai.vectorstore.pinecone.autoconfigure; import io.micrometer.observation.ObservationRegistry; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreProperties.java similarity index 95% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreProperties.java index c6d96d003..fd7b72eb6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.pinecone; +package org.springframework.ai.vectorstore.pinecone.autoconfigure; import java.time.Duration; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..84c4d772c --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/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.pinecone.autoconfigure.PineconeVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfigurationIT.java similarity index 85% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfigurationIT.java index 4ed5257ca..1a7495bf7 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStoreAutoConfigurationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.pinecone; +package org.springframework.ai.vectorstore.pinecone.autoconfigure; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -33,6 +33,7 @@ import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.observation.conventions.VectorStoreProvider; +import org.springframework.ai.test.vectorstore.ObservationTestUtil; import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.pinecone.PineconeVectorStore; import org.springframework.ai.vectorstore.SearchRequest; @@ -52,7 +53,6 @@ import static org.hamcrest.Matchers.hasSize; * @author Thomas Vitale */ @EnabledIfEnvironmentVariable(named = "PINECONE_API_KEY", matches = ".+") -@Disabled("Can be re-enabled once the auto-configuration is modularised") public class PineconeVectorStoreAutoConfigurationIT { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() @@ -95,8 +95,8 @@ public class PineconeVectorStoreAutoConfigurationIT { vectorStore.add(this.documents); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry( - observationRegistry, VectorStoreProvider.PINECONE, VectorStoreObservationContext.Operation.ADD); + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.PINECONE, + VectorStoreObservationContext.Operation.ADD); Awaitility.await() .until(() -> vectorStore.similaritySearch(SearchRequest.builder().query("Spring").topK(1).build()), @@ -114,15 +114,15 @@ public class PineconeVectorStoreAutoConfigurationIT { assertThat(resultDoc.getMetadata()).hasSize(2); assertThat(resultDoc.getMetadata()).containsKeys("spring", "customDistanceField"); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry( - observationRegistry, VectorStoreProvider.PINECONE, VectorStoreObservationContext.Operation.QUERY); + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.PINECONE, + VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); // Remove all documents from the store vectorStore.delete(this.documents.stream().map(doc -> doc.getId()).toList()); - org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry( - observationRegistry, VectorStoreProvider.PINECONE, VectorStoreObservationContext.Operation.DELETE); + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.PINECONE, + VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); Awaitility.await() diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStorePropertiesTests.java similarity index 95% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStorePropertiesTests.java index 42d0eb746..0e407b8e2 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone/src/test/java/org/springframework/ai/vectorstore/pinecone/autoconfigure/PineconeVectorStorePropertiesTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.pinecone; +package org.springframework.ai.vectorstore.pinecone.autoconfigure; import java.time.Duration; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/pom.xml new file mode 100644 index 000000000..be81dde70 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/pom.xml @@ -0,0 +1,111 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-qdrant + jar + Spring AI Auto Configuration for Qdrant vector store + Spring AI Auto Configuration for Qdrant 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 + + + + 1.65.1 + + + + + org.springframework.ai + spring-ai-qdrant-store + ${project.parent.version} + true + + + + io.grpc + grpc-api + ${grpc.version} + provided + + + 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.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + testcontainers + test + + + org.testcontainers + qdrant + test + + + org.testcontainers + junit-jupiter + 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/qdrant/QdrantConnectionDetails.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantConnectionDetails.java similarity index 88% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantConnectionDetails.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantConnectionDetails.java index 9027c6ab0..c3dea25a4 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantConnectionDetails.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantConnectionDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfiguration.java similarity index 97% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfiguration.java index 0521484be..b01143a9a 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; import io.micrometer.observation.ObservationRegistry; import io.qdrant.client.QdrantClient; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreProperties.java similarity index 91% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreProperties.java index 64552550c..2de14e4fd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.qdrant.QdrantVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..dd052b67e --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/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.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfigurationIT.java similarity index 90% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfigurationIT.java index c6b28d440..764c94a33 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreAutoConfigurationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -30,6 +30,7 @@ import org.testcontainers.qdrant.QdrantContainer; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.observation.conventions.VectorStoreProvider; +import org.springframework.ai.test.vectorstore.ObservationTestUtil; import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; @@ -41,7 +42,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.DefaultResourceLoader; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry; /** * @author Christian Tzolov @@ -87,7 +87,7 @@ public class QdrantVectorStoreAutoConfigurationIT { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -99,7 +99,7 @@ public class QdrantVectorStoreAutoConfigurationIT { assertThat(resultDoc.getId()).isEqualTo(this.documents.get(2).getId()); assertThat(resultDoc.getMetadata()).containsKeys("depression", "distance"); - assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); @@ -108,7 +108,7 @@ public class QdrantVectorStoreAutoConfigurationIT { results = vectorStore.similaritySearch(SearchRequest.builder().query("Great Depression").topK(1).build()); assertThat(results).hasSize(0); - assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); }); diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreCloudAutoConfigurationIT.java similarity index 97% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreCloudAutoConfigurationIT.java index be3e05369..4cb8a794e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStoreCloudAutoConfigurationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; import java.io.IOException; import java.nio.charset.StandardCharsets; diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStorePropertiesTests.java similarity index 93% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStorePropertiesTests.java index 31c3e5282..ef7169a93 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant/src/test/java/org/springframework/ai/vectorstore/qdrant/autoconfigure/QdrantVectorStorePropertiesTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.qdrant; +package org.springframework.ai.vectorstore.qdrant.autoconfigure; import org.junit.jupiter.api.Test; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/pom.xml new file mode 100644 index 000000000..b763776de --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/pom.xml @@ -0,0 +1,102 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-autoconfigure-vector-store-typesense + jar + Spring AI Auto Configuration for Typesense vector store + Spring AI Auto Configuration for Typesense 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-typesense-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.springframework.boot + spring-boot-testcontainers + test + + + org.testcontainers + testcontainers + test + + + org.testcontainers + junit-jupiter + test + + + org.awaitility + awaitility + test + + + org.testcontainers + typesense + 1.20.4 + 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/typesense/TypesenseConnectionDetails.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseConnectionDetails.java similarity index 88% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseConnectionDetails.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseConnectionDetails.java index 3145c15dc..79643b252 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseConnectionDetails.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseConnectionDetails.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.typesense; +package org.springframework.ai.vectorstore.typesense.autoconfigure; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseServiceClientProperties.java similarity index 93% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseServiceClientProperties.java index 64683100c..9b62ef893 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseServiceClientProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.typesense; +package org.springframework.ai.vectorstore.typesense.autoconfigure; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfiguration.java similarity index 98% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfiguration.java index badcfbba1..8822ce57e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.typesense; +package org.springframework.ai.vectorstore.typesense.autoconfigure; import java.time.Duration; import java.util.ArrayList; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreProperties.java similarity index 89% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreProperties.java index 6c49bfa8a..8b678d49e 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,9 +14,9 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.typesense; +package org.springframework.ai.vectorstore.typesense.autoconfigure; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.typesense.TypesenseVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..1f761aacd --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/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.typesense.autoconfigure.TypesenseVectorStoreAutoConfiguration diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/test/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfigurationIT.java similarity index 90% rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/test/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfigurationIT.java index 2c297ee77..a3213b05d 100644 --- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense/src/test/java/org/springframework/ai/vectorstore/typesense/autoconfigure/TypesenseVectorStoreAutoConfigurationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.typesense; +package org.springframework.ai.vectorstore.typesense.autoconfigure; import java.util.List; import java.util.Map; @@ -29,6 +29,7 @@ import org.springframework.ai.ResourceUtils; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.observation.conventions.VectorStoreProvider; +import org.springframework.ai.test.vectorstore.ObservationTestUtil; import org.springframework.ai.transformers.TransformersEmbeddingModel; import org.springframework.ai.vectorstore.SearchRequest; import org.springframework.ai.vectorstore.VectorStore; @@ -39,7 +40,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.ai.autoconfigure.vectorstore.observation.ObservationTestUtil.assertObservationRegistry; /** * @author Pablo Sanchidrian Herrera @@ -79,7 +79,7 @@ public class TypesenseVectorStoreAutoConfigurationIT { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -94,13 +94,13 @@ public class TypesenseVectorStoreAutoConfigurationIT { assertThat(resultDoc.getMetadata()).hasSize(2); assertThat(resultDoc.getMetadata()).containsKeys("spring", "distance"); - assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, VectorStoreObservationContext.Operation.QUERY); observationRegistry.clear(); vectorStore.delete(this.documents.stream().map(doc -> doc.getId()).toList()); - assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, VectorStoreObservationContext.Operation.DELETE); observationRegistry.clear(); diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/pom.xml similarity index 97% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/pom.xml rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/pom.xml index 6fa023713..eda81b419 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/pom.xml +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/pom.xml @@ -25,7 +25,7 @@ 1.0.0-SNAPSHOT ../../../pom.xml - spring-ai-weaviate-store-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-weaviate jar Spring AI Auto Configuration for Weaviate vector store Spring AI Auto Configuration for Weaviate vector store diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateConnectionDetails.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateConnectionDetails.java similarity index 92% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateConnectionDetails.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateConnectionDetails.java index 403c33079..a9fde49c6 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateConnectionDetails.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateConnectionDetails.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.weaviate; +package org.springframework.ai.vectorstore.weaviate.autoconfigure; import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails; diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfiguration.java similarity index 98% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfiguration.java index 0f744b871..a7d1453a1 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.weaviate; +package org.springframework.ai.vectorstore.weaviate.autoconfigure; import io.micrometer.observation.ObservationRegistry; import io.weaviate.client.Config; diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreProperties.java similarity index 97% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreProperties.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreProperties.java index 57dd95593..4241af11d 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreProperties.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.weaviate; +package org.springframework.ai.vectorstore.weaviate.autoconfigure; import java.util.Map; diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 90% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 294e96462..0c318ccf7 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreAutoConfiguration +org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateVectorStoreAutoConfiguration diff --git a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/test/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfigurationIT.java similarity index 99% rename from auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationIT.java rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/test/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfigurationIT.java index 0f68b9358..eddd4ba80 100644 --- a/auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationIT.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate/src/test/java/org/springframework/ai/vectorstore/weaviate/autoconfigure/WeaviateVectorStoreAutoConfigurationIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore.weaviate; +package org.springframework.ai.vectorstore.weaviate.autoconfigure; import java.util.List; import java.util.Map; diff --git a/pom.xml b/pom.xml index 9c6fc04b4..236a32ad9 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,11 @@ auto-configurations/mcp/spring-ai-autoconfigure-mcp-client auto-configurations/mcp/spring-ai-autoconfigure-mcp-server - auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-milvus + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-pinecone + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-typesense + auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate spring-ai-spring-boot-autoconfigure @@ -113,17 +117,17 @@ spring-ai-spring-boot-starters/spring-ai-starter-gemfire-store spring-ai-spring-boot-starters/spring-ai-starter-hanadb-store spring-ai-spring-boot-starters/spring-ai-starter-mariadb-store - spring-ai-spring-boot-starters/spring-ai-starter-milvus-store spring-ai-spring-boot-starters/spring-ai-starter-mongodb-atlas-store spring-ai-spring-boot-starters/spring-ai-starter-neo4j-store spring-ai-spring-boot-starters/spring-ai-starter-opensearch-store spring-ai-spring-boot-starters/spring-ai-starter-oracle-store spring-ai-spring-boot-starters/spring-ai-starter-pgvector-store - spring-ai-spring-boot-starters/spring-ai-starter-pinecone-store - spring-ai-spring-boot-starters/spring-ai-starter-qdrant-store spring-ai-spring-boot-starters/spring-ai-starter-redis-store - spring-ai-spring-boot-starters/spring-ai-starter-typesense-store - spring-ai-spring-boot-starters/spring-ai-starter-weaviate-store + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-milvus + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-pinecone + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-qdrant + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-typesense + spring-ai-spring-boot-starters/spring-ai-starter-vector-store-weaviate models/spring-ai-anthropic models/spring-ai-azure-openai diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/CommonVectorStoreProperties.java b/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/properties/CommonVectorStoreProperties.java similarity index 91% rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/CommonVectorStoreProperties.java rename to spring-ai-core/src/main/java/org/springframework/ai/vectorstore/properties/CommonVectorStoreProperties.java index 8106eb3b2..a30704d0f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/CommonVectorStoreProperties.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/vectorstore/properties/CommonVectorStoreProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.autoconfigure.vectorstore; +package org.springframework.ai.vectorstore.properties; /** * Common properties for vector stores. diff --git a/spring-ai-spring-boot-autoconfigure/pom.xml b/spring-ai-spring-boot-autoconfigure/pom.xml index 4ce105a7f..3918c0909 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-milvus-store - ${project.parent.version} - true - - org.springframework.ai @@ -332,14 +324,6 @@ true - - - org.springframework.ai - spring-ai-qdrant-store - ${project.parent.version} - true - - org.springframework.ai spring-ai-mongodb-atlas-store @@ -542,12 +526,6 @@ test - - org.testcontainers - milvus - test - - org.testcontainers mongodb @@ -555,31 +533,12 @@ test - - org.testcontainers - qdrant - test - - org.testcontainers elasticsearch test - - org.testcontainers - typesense - 1.20.4 - test - - - - org.testcontainers - weaviate - test - - org.opensearch opensearch-testcontainers diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java index 96c55b7c6..3afd114d6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/azure/AzureVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.azure; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.azure.AzureVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreProperties.java index 19174772f..b7a8d2020 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreProperties.java @@ -20,7 +20,7 @@ import com.google.api.client.util.Preconditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.cassandra.CassandraVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreProperties.java index 2a54f449a..3c102e1c1 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.chroma; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.chroma.vectorstore.ChromaVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java index 6f34b69a1..1c4382a0c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cosmosdb/CosmosDBVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.cosmosdb; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.boot.context.properties.ConfigurationProperties; /** diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreProperties.java index 876c13ab5..ddc48279c 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.elasticsearch; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.elasticsearch.SimilarityFunction; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/gemfire/GemFireVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/gemfire/GemFireVectorStoreProperties.java index fcdfee049..8d0b3a771 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/gemfire/GemFireVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/gemfire/GemFireVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.gemfire; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.gemfire.GemFireVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mariadb/MariaDbStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mariadb/MariaDbStoreProperties.java index 2e9f3cb27..e3cefd7ad 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mariadb/MariaDbStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mariadb/MariaDbStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.mariadb; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.mariadb.MariaDBVectorStore; import org.springframework.ai.vectorstore.mariadb.MariaDBVectorStore.MariaDBDistanceType; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreProperties.java index a666855d5..99812f4ec 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/mongo/MongoDBAtlasVectorStoreProperties.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.vectorstore.mongo; import java.util.List; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.boot.context.properties.ConfigurationProperties; /** diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreProperties.java index 52606c754..ae46afecd 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/neo4j/Neo4jVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.neo4j; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.neo4j.Neo4jVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java index 16617288e..2a08ebc5f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java @@ -18,7 +18,7 @@ package org.springframework.ai.autoconfigure.vectorstore.opensearch; import java.util.List; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = OpenSearchVectorStoreProperties.CONFIG_PREFIX) diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/oracle/OracleVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/oracle/OracleVectorStoreProperties.java index ff355b992..9357d6c5f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/oracle/OracleVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/oracle/OracleVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.oracle; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.oracle.OracleVectorStore; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java index 371b06255..d27c1b30f 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.pgvector; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.ai.vectorstore.pgvector.PgVectorStore; import org.springframework.ai.vectorstore.pgvector.PgVectorStore.PgDistanceType; import org.springframework.ai.vectorstore.pgvector.PgVectorStore.PgIndexType; diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreProperties.java index 21859a5bd..310e8f5d9 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.redis; -import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties; +import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties; import org.springframework.boot.context.properties.ConfigurationProperties; /** 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 5462fc55d..d739a0cf2 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 @@ -31,13 +31,10 @@ org.springframework.ai.model.ollama.autoconfigure.OllamaAutoConfiguration org.springframework.ai.model.mistralai.autoconfigure.MistralAiAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.oracle.OracleVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.pgvector.PgVectorStoreAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.pinecone.PineconeVectorStoreAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.redis.RedisVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.chroma.ChromaVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.azure.AzureVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.neo4j.Neo4jVectorStoreAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.hanadb.HanaCloudVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.cosmosdb.CosmosDBVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.mariadb.MariaDbStoreAutoConfiguration @@ -52,6 +49,8 @@ org.springframework.ai.autoconfigure.vectorstore.cassandra.CassandraVectorStoreA org.springframework.ai.model.zhipuai.autoconfigure.ZhiPuAiAutoConfiguration org.springframework.ai.model.chat.client.autoconfigure.ChatClientAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseVectorStoreAutoConfiguration +org.springframework.ai.autoconfigure.zhipuai.ZhiPuAiAutoConfiguration +org.springframework.ai.autoconfigure.chat.client.ChatClientAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.opensearch.OpenSearchVectorStoreAutoConfiguration org.springframework.ai.model.moonshot.autoconfigure.MoonshotAutoConfiguration org.springframework.ai.model.qianfan.autoconfigure.QianFanAutoConfiguration diff --git a/spring-ai-spring-boot-docker-compose/pom.xml b/spring-ai-spring-boot-docker-compose/pom.xml index c938d1310..845e67888 100644 --- a/spring-ai-spring-boot-docker-compose/pom.xml +++ b/spring-ai-spring-boot-docker-compose/pom.xml @@ -51,7 +51,17 @@ org.springframework.ai - spring-ai-weaviate-store-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-weaviate + ${project.parent.version} + + + org.springframework.ai + spring-ai-autoconfigure-vector-store-qdrant + ${project.parent.version} + + + org.springframework.ai + spring-ai-autoconfigure-vector-store-typesense ${project.parent.version} diff --git a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactory.java b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactory.java index 2de9b0a4b..18880b78e 100644 --- a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactory.java @@ -16,7 +16,7 @@ package org.springframework.ai.docker.compose.service.connection.qdrant; -import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantConnectionDetails; +import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; diff --git a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactory.java b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactory.java index 011461828..f6cd46b2f 100644 --- a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactory.java @@ -16,7 +16,7 @@ package org.springframework.ai.docker.compose.service.connection.typesense; -import org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseConnectionDetails; +import org.springframework.ai.vectorstore.typesense.autoconfigure.TypesenseConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; diff --git a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactory.java b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactory.java index 2f8216b7d..21c7515d6 100644 --- a/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-docker-compose/src/main/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactory.java @@ -16,7 +16,7 @@ package org.springframework.ai.docker.compose.service.connection.weaviate; -import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateConnectionDetails; +import org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateConnectionDetails; import org.springframework.boot.docker.compose.core.RunningService; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionDetailsFactory; import org.springframework.boot.docker.compose.service.connection.DockerComposeConnectionSource; diff --git a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactoryIT.java index d15471982..f44b31dad 100644 --- a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/qdrant/QdrantDockerComposeConnectionDetailsFactoryIT.java @@ -19,7 +19,7 @@ package org.springframework.ai.docker.compose.service.connection.qdrant; import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; -import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantConnectionDetails; +import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactoryIT.java index d27a34524..2b35fcffa 100644 --- a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/typesense/TypesenseDockerComposeConnectionDetailsFactoryIT.java @@ -19,7 +19,7 @@ package org.springframework.ai.docker.compose.service.connection.typesense; import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; -import org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseConnectionDetails; +import org.springframework.ai.vectorstore.typesense.autoconfigure.TypesenseConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactoryIT.java index 3cc30eb19..6c4f6e06a 100644 --- a/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-docker-compose/src/test/java/org/springframework/ai/docker/compose/service/connection/weaviate/WeaviateDockerComposeConnectionDetailsFactoryIT.java @@ -19,7 +19,7 @@ package org.springframework.ai.docker.compose.service.connection.weaviate; import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; -import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateConnectionDetails; +import org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-milvus-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-milvus/pom.xml similarity index 78% rename from spring-ai-spring-boot-starters/spring-ai-starter-milvus-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-milvus/pom.xml index 49c66a4c2..7ced0ea04 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-milvus-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-milvus/pom.xml @@ -23,7 +23,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-milvus-store-spring-boot-starter + spring-ai-starter-vector-store-milvus jar Spring AI Starter - Milvus Vector Store Spring AI Milvus Vector Store Auto Configuration @@ -42,17 +42,18 @@ spring-boot-starter - - org.springframework.ai - spring-ai-spring-boot-autoconfigure - ${project.parent.version} - + + org.springframework.ai + spring-ai-autoconfigure-vector-store-milvus + ${project.parent.version} + + + + org.springframework.ai + spring-ai-milvus-store + ${project.parent.version} + - - org.springframework.ai - spring-ai-milvus-store - ${project.parent.version} - diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-pinecone-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-pinecone/pom.xml similarity index 87% rename from spring-ai-spring-boot-starters/spring-ai-starter-pinecone-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-pinecone/pom.xml index bb1977f6d..1fbd2bafa 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-pinecone-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-pinecone/pom.xml @@ -23,7 +23,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-pinecone-store-spring-boot-starter + spring-ai-starter-vector-store-pinecone jar Spring AI Starter - Pinecone Vector Store Spring AI Pinecone Vector Store Auto Configuration @@ -42,11 +42,11 @@ spring-boot-starter - - org.springframework.ai - spring-ai-spring-boot-autoconfigure - ${project.parent.version} - + + org.springframework.ai + spring-ai-autoconfigure-vector-store-pinecone + ${project.parent.version} + org.springframework.ai diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-qdrant-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-qdrant/pom.xml similarity index 87% rename from spring-ai-spring-boot-starters/spring-ai-starter-qdrant-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-qdrant/pom.xml index fddb080fe..3fec0e4b9 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-qdrant-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-qdrant/pom.xml @@ -23,7 +23,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-qdrant-store-spring-boot-starter + spring-ai-starter-vector-store-qdrant jar Spring AI Starter - Qdrant Vector Store Spring AI Qdrant Vector Store Auto Configuration @@ -42,11 +42,11 @@ spring-boot-starter - - org.springframework.ai - spring-ai-spring-boot-autoconfigure - ${project.parent.version} - + + org.springframework.ai + spring-ai-autoconfigure-vector-store-qdrant + ${project.parent.version} + org.springframework.ai diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-typesense-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-typesense/pom.xml similarity index 87% rename from spring-ai-spring-boot-starters/spring-ai-starter-typesense-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-typesense/pom.xml index 2b3e52518..fa81d082b 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-typesense-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-typesense/pom.xml @@ -25,7 +25,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-typesense-store-spring-boot-starter + spring-ai-starter-vector-store-typesense jar Spring AI Starter - Typesense Spring AI Typesense Auto Configuration @@ -44,11 +44,11 @@ spring-boot-starter - - org.springframework.ai - spring-ai-spring-boot-autoconfigure - ${project.parent.version} - + + org.springframework.ai + spring-ai-autoconfigure-vector-store-typesense + ${project.parent.version} + org.springframework.ai @@ -57,4 +57,4 @@ - \ No newline at end of file + diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-weaviate-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-weaviate/pom.xml similarity index 93% rename from spring-ai-spring-boot-starters/spring-ai-starter-weaviate-store/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-weaviate/pom.xml index 443d10ebb..cd9f9f5d4 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-weaviate-store/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-weaviate/pom.xml @@ -23,7 +23,7 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-weaviate-store-spring-boot-starter + spring-ai-starter-vector-store-weaviate jar Spring AI Starter - Weaviate Vector Store Spring AI Weaviate Vector Store Auto Configuration @@ -44,7 +44,7 @@ org.springframework.ai - spring-ai-weaviate-store-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-weaviate ${project.parent.version} diff --git a/spring-ai-spring-boot-testcontainers/pom.xml b/spring-ai-spring-boot-testcontainers/pom.xml index 7c192ff25..86da40c0f 100644 --- a/spring-ai-spring-boot-testcontainers/pom.xml +++ b/spring-ai-spring-boot-testcontainers/pom.xml @@ -51,7 +51,23 @@ org.springframework.ai - spring-ai-weaviate-store-spring-boot-autoconfigure + spring-ai-autoconfigure-vector-store-milvus + ${project.parent.version} + + + org.springframework.ai + spring-ai-autoconfigure-vector-store-qdrant + ${project.parent.version} + + + org.springframework.ai + spring-ai-autoconfigure-vector-store-weaviate + ${project.parent.version} + + + + org.springframework.ai + spring-ai-autoconfigure-vector-store-typesense ${project.parent.version} diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java index 137f85296..c317c2cc0 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactory.java @@ -18,7 +18,7 @@ package org.springframework.ai.testcontainers.service.connection.milvus; import org.testcontainers.milvus.MilvusContainer; -import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusServiceClientConnectionDetails; +import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusServiceClientConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource; diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java index e6a6bd536..bc1f169ff 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactory.java @@ -18,7 +18,7 @@ package org.springframework.ai.testcontainers.service.connection.qdrant; import org.testcontainers.qdrant.QdrantContainer; -import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantConnectionDetails; +import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource; diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactory.java index f2bc175c0..28f312d4e 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactory.java @@ -18,7 +18,7 @@ package org.springframework.ai.testcontainers.service.connection.typesense; import org.testcontainers.typesense.TypesenseContainer; -import org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseConnectionDetails; +import org.springframework.ai.vectorstore.typesense.autoconfigure.TypesenseConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource; diff --git a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java index d953dfa9c..86cbbd932 100644 --- a/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java +++ b/spring-ai-spring-boot-testcontainers/src/main/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactory.java @@ -18,7 +18,7 @@ package org.springframework.ai.testcontainers.service.connection.weaviate; import org.testcontainers.weaviate.WeaviateContainer; -import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateConnectionDetails; +import org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionSource; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryIT.java index c148932b9..4dbf043cd 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryIT.java @@ -25,7 +25,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.milvus.MilvusContainer; import org.springframework.ai.ResourceUtils; -import org.springframework.ai.autoconfigure.vectorstore.milvus.MilvusVectorStoreAutoConfiguration; +import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.transformers.TransformersEmbeddingModel; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryIT.java index 15c5c981f..39b4c94f1 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerConnectionDetailsFactoryIT.java @@ -26,7 +26,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; -import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantVectorStoreAutoConfiguration; +import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.transformers.TransformersEmbeddingModel; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerWithApiKeyConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerWithApiKeyConnectionDetailsFactoryIT.java index b856ae52d..11df3e951 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerWithApiKeyConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/qdrant/QdrantContainerWithApiKeyConnectionDetailsFactoryIT.java @@ -26,7 +26,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.qdrant.QdrantContainer; -import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantVectorStoreAutoConfiguration; +import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.transformers.TransformersEmbeddingModel; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactoryIT.java index b6b8c3b3f..e66146fb5 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/typesense/TypesenseContainerConnectionDetailsFactoryIT.java @@ -25,7 +25,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.typesense.TypesenseContainer; import org.springframework.ai.ResourceUtils; -import org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseVectorStoreAutoConfiguration; +import org.springframework.ai.vectorstore.typesense.autoconfigure.TypesenseVectorStoreAutoConfiguration; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.transformers.TransformersEmbeddingModel; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryIT.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryIT.java index 17107c3c1..adcb49a78 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryIT.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryIT.java @@ -25,8 +25,8 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.weaviate.WeaviateContainer; -import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreAutoConfiguration; -import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreProperties; +import org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateVectorStoreAutoConfiguration; +import org.springframework.ai.vectorstore.weaviate.autoconfigure.WeaviateVectorStoreProperties; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingModel; import org.springframework.ai.transformers.TransformersEmbeddingModel;