From 95c2cd20b3c1e2c067ab8ac598e00554a671a052 Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Thu, 20 Feb 2025 20:16:26 -0500 Subject: [PATCH] Migrate vector store auto-configurations to dedicated modules Move vector store auto-configuration classes to dedicated modules under auto-configurations/vector-stores/: - Creates separate modules for Milvus, Pinecone, Qdrant, and Typesense vector stores - Moves CommonVectorStoreProperties to spring-ai-core for better reusability - Updates pom.xml dependencies to maintain proper relationships between modules This change improves modularity by allowing each vector store implementation to be independently versioned and maintained, continuing the migration pattern established with previous vector stores. Signed-off-by: Soby Chacko --- .../pom.xml | 101 +++++++++++++++++ .../MilvusServiceClientConnectionDetails.java | 0 .../milvus/MilvusServiceClientProperties.java | 0 .../MilvusVectorStoreAutoConfiguration.java | 0 .../milvus/MilvusVectorStoreProperties.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 16 +++ .../MilvusVectorStoreAutoConfigurationIT.java | 16 +-- .../pom.xml | 96 +++++++++++++++++ .../PineconeVectorStoreAutoConfiguration.java | 0 .../PineconeVectorStoreProperties.java | 0 ...ot.autoconfigure.AutoConfiguration.imports | 16 +++ ...ineconeVectorStoreAutoConfigurationIT.java | 15 +-- .../PineconeVectorStorePropertiesTests.java | 0 .../pom.xml | 101 +++++++++++++++++ .../qdrant/QdrantConnectionDetails.java | 0 .../QdrantVectorStoreAutoConfiguration.java | 0 .../qdrant/QdrantVectorStoreProperties.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 16 +++ .../QdrantVectorStoreAutoConfigurationIT.java | 10 +- ...ntVectorStoreCloudAutoConfigurationIT.java | 0 .../QdrantVectorStorePropertiesTests.java | 0 .../pom.xml | 102 ++++++++++++++++++ .../typesense/TypesenseConnectionDetails.java | 2 +- .../TypesenseServiceClientProperties.java | 2 +- ...TypesenseVectorStoreAutoConfiguration.java | 0 .../TypesenseVectorStoreProperties.java | 4 +- ...ot.autoconfigure.AutoConfiguration.imports | 16 +++ ...pesenseVectorStoreAutoConfigurationIT.java | 10 +- pom.xml | 4 + .../CommonVectorStoreProperties.java | 4 +- spring-ai-spring-boot-autoconfigure/pom.xml | 41 ------- .../azure/AzureVectorStoreProperties.java | 2 +- .../CassandraVectorStoreProperties.java | 2 +- .../chroma/ChromaVectorStoreProperties.java | 2 +- .../CosmosDBVectorStoreProperties.java | 2 +- .../ElasticsearchVectorStoreProperties.java | 2 +- .../gemfire/GemFireVectorStoreProperties.java | 2 +- .../mariadb/MariaDbStoreProperties.java | 2 +- .../MongoDBAtlasVectorStoreProperties.java | 2 +- .../neo4j/Neo4jVectorStoreProperties.java | 2 +- .../OpenSearchVectorStoreProperties.java | 2 +- .../oracle/OracleVectorStoreProperties.java | 2 +- .../pgvector/PgVectorStoreProperties.java | 2 +- .../redis/RedisVectorStoreProperties.java | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 4 - spring-ai-spring-boot-docker-compose/pom.xml | 10 ++ spring-ai-spring-boot-testcontainers/pom.xml | 16 +++ 47 files changed, 541 insertions(+), 91 deletions(-) create mode 100644 auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/pom.xml rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientConnectionDetails.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java (98%) create mode 100644 auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java (90%) create mode 100644 auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/pom.xml rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java (100%) create mode 100644 auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java (88%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java (100%) create mode 100644 auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/pom.xml rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantConnectionDetails.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java (96%) create mode 100644 auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java (91%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java (100%) create mode 100644 auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/pom.xml rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseConnectionDetails.java (94%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java (96%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java (100%) rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure}/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java (92%) create mode 100644 auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename {spring-ai-spring-boot-autoconfigure => auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure}/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java (91%) rename {spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore => spring-ai-core/src/main/java/org/springframework/ai/vectorstore/properties}/CommonVectorStoreProperties.java (91%) diff --git a/auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/pom.xml b/auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/pom.xml new file mode 100644 index 00000000000..7085cc41df4 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/pom.xml @@ -0,0 +1,101 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-milvus-store-spring-boot-autoconfigure + 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientConnectionDetails.java similarity index 100% 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientConnectionDetails.java 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java similarity index 100% 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusServiceClientProperties.java 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java similarity index 100% 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfiguration.java 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java similarity index 98% 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java index 5e43925d044..2b8c635a2d9 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-milvus-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.milvus; -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-milvus-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..b754197d27b --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure/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.autoconfigure.vectorstore.milvus.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-milvus-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java similarity index 90% 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-milvus-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/MilvusVectorStoreAutoConfigurationIT.java index ef27d5564ea..119e6d2e8cb 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-milvus-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/milvus/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. @@ -29,6 +29,7 @@ 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.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 void addAndSearch() { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -94,7 +94,7 @@ public void addAndSearch() { 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 void addAndSearch() { 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 void searchWithCustomFields() { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.MILVUS, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -146,7 +146,7 @@ public void searchWithCustomFields() { 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 void searchWithCustomFields() { 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-pinecone-store-spring-boot-autoconfigure/pom.xml b/auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/pom.xml new file mode 100644 index 00000000000..1366af1cc78 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/pom.xml @@ -0,0 +1,96 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-pinecone-store-spring-boot-autoconfigure + 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-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-pinecone-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java similarity index 100% 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-pinecone-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfiguration.java 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-pinecone-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java similarity index 100% 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-pinecone-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreProperties.java diff --git a/auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..609d7a0d579 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure/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.autoconfigure.vectorstore.pinecone.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-pinecone-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java similarity index 88% 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-pinecone-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStoreAutoConfigurationIT.java index 7ae2f53e8d8..13c66a4d67d 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-pinecone-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/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. @@ -32,6 +32,7 @@ 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; @@ -95,8 +96,8 @@ public void addAndSearchTest() { 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 +115,15 @@ public void addAndSearchTest() { 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-pinecone-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java similarity index 100% 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-pinecone-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pinecone/PineconeVectorStorePropertiesTests.java diff --git a/auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/pom.xml b/auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/pom.xml new file mode 100644 index 00000000000..2ee3249c67d --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/pom.xml @@ -0,0 +1,101 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-qdrant-store-spring-boot-autoconfigure + 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 + + + + + + org.springframework.ai + spring-ai-qdrant-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 + 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantConnectionDetails.java similarity index 100% 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantConnectionDetails.java 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java similarity index 100% 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfiguration.java 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java similarity index 96% 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java index 64552550c7d..876fe8c0653 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-qdrant-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.qdrant; -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-qdrant-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..609d7a0d579 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure/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.autoconfigure.vectorstore.pinecone.PineconeVectorStoreAutoConfiguration 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java similarity index 91% 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreAutoConfigurationIT.java index c6b28d44017..03475dbd764 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/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. @@ -30,6 +30,7 @@ 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.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 void addAndSearch() { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.QDRANT, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -99,7 +99,7 @@ public void addAndSearch() { 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 void addAndSearch() { 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java similarity index 100% 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStoreCloudAutoConfigurationIT.java 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java similarity index 100% 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-qdrant-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/qdrant/QdrantVectorStorePropertiesTests.java diff --git a/auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/pom.xml b/auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/pom.xml new file mode 100644 index 00000000000..d9b06beb142 --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/pom.xml @@ -0,0 +1,102 @@ + + + + + 4.0.0 + + org.springframework.ai + spring-ai + 1.0.0-SNAPSHOT + ../../../pom.xml + + spring-ai-typesense-store-spring-boot-autoconfigure + 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-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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseConnectionDetails.java similarity index 94% 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseConnectionDetails.java index 3145c15dc19..a94ba882d39 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/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. 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java similarity index 96% 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseServiceClientProperties.java index 64683100c2f..575fb82b94d 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/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. 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java similarity index 100% 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfiguration.java 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java similarity index 92% 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreProperties.java index 6c49bfa8a05..475088fca2a 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-typesense-store-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/typesense/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. @@ -16,7 +16,7 @@ package org.springframework.ai.autoconfigure.vectorstore.typesense; -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-typesense-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..294e964625d --- /dev/null +++ b/auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure/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.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreAutoConfiguration 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-typesense-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java similarity index 91% 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-typesense-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/TypesenseVectorStoreAutoConfigurationIT.java index 2c297ee7748..0af75e6855d 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-typesense-store-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/typesense/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. @@ -29,6 +29,7 @@ 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.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 void addAndSearch() { vectorStore.add(this.documents); - assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, + ObservationTestUtil.assertObservationRegistry(observationRegistry, VectorStoreProvider.TYPESENSE, VectorStoreObservationContext.Operation.ADD); observationRegistry.clear(); @@ -94,13 +94,13 @@ public void addAndSearch() { 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/pom.xml b/pom.xml index 2d1236bd4b3..520bc1a3c22 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,10 @@ auto-configurations/spring-ai-mcp-client auto-configurations/spring-ai-mcp-server + auto-configurations/vector-stores/spring-ai-milvus-store-spring-boot-autoconfigure + auto-configurations/vector-stores/spring-ai-pinecone-store-spring-boot-autoconfigure + auto-configurations/vector-stores/spring-ai-qdrant-store-spring-boot-autoconfigure + auto-configurations/vector-stores/spring-ai-typesense-store-spring-boot-autoconfigure auto-configurations/vector-stores/spring-ai-weaviate-store-spring-boot-autoconfigure spring-ai-retry 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 8106eb3b2c4..a30704d0f1d 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 402abd895a5..fa508c9de19 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 @@ -535,12 +519,6 @@ test - - org.testcontainers - milvus - test - - org.testcontainers mongodb @@ -548,31 +526,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 96c55b7c678..3afd114d6a5 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 19174772f6b..b7a8d202024 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 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 2a54f449a6a..3c102e1c1ee 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 6f34b69a1de..1c4382a0cf5 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 876c13ab579..ddc48279c33 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 fcdfee049b3..8d0b3a77164 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 2e9f3cb27c5..e3cefd7ad72 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 a666855d512..99812f4ec7f 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 @@ 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 52606c754b1..ae46afecdae 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 16617288ef9..2a08ebc5f14 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 @@ 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 ff355b99261..9357d6c5f0d 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 371b06255e1..d27c1b30f21 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 21859a5bd78..310e8f5d987 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 286f6b36a64..bcc1ff83da4 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.autoconfigure.ollama.OllamaAutoConfiguration org.springframework.ai.autoconfigure.mistralai.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 @@ -51,7 +48,6 @@ org.springframework.ai.autoconfigure.vectorstore.gemfire.GemFireVectorStoreAutoC org.springframework.ai.autoconfigure.vectorstore.cassandra.CassandraVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.zhipuai.ZhiPuAiAutoConfiguration org.springframework.ai.autoconfigure.chat.client.ChatClientAutoConfiguration -org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.opensearch.OpenSearchVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.moonshot.MoonshotAutoConfiguration org.springframework.ai.autoconfigure.qianfan.QianFanAutoConfiguration diff --git a/spring-ai-spring-boot-docker-compose/pom.xml b/spring-ai-spring-boot-docker-compose/pom.xml index 68e1b02e53d..00739401118 100644 --- a/spring-ai-spring-boot-docker-compose/pom.xml +++ b/spring-ai-spring-boot-docker-compose/pom.xml @@ -52,6 +52,16 @@ spring-ai-weaviate-store-spring-boot-autoconfigure ${project.parent.version} + + org.springframework.ai + spring-ai-qdrant-store-spring-boot-autoconfigure + ${project.parent.version} + + + org.springframework.ai + spring-ai-typesense-store-spring-boot-autoconfigure + ${project.parent.version} + com.google.protobuf diff --git a/spring-ai-spring-boot-testcontainers/pom.xml b/spring-ai-spring-boot-testcontainers/pom.xml index 11a8dda11af..89d6bb6b164 100644 --- a/spring-ai-spring-boot-testcontainers/pom.xml +++ b/spring-ai-spring-boot-testcontainers/pom.xml @@ -47,12 +47,28 @@ spring-ai-spring-boot-autoconfigure ${project.parent.version} + + org.springframework.ai + spring-ai-milvus-store-spring-boot-autoconfigure + ${project.parent.version} + + + org.springframework.ai + spring-ai-qdrant-store-spring-boot-autoconfigure + ${project.parent.version} + org.springframework.ai spring-ai-weaviate-store-spring-boot-autoconfigure ${project.parent.version} + + org.springframework.ai + spring-ai-typesense-store-spring-boot-autoconfigure + ${project.parent.version} + + com.google.protobuf protobuf-java