diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/pom.xml b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/pom.xml
new file mode 100644
index 000000000..c03afa972
--- /dev/null
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/pom.xml
@@ -0,0 +1,113 @@
+
+
+
+
+ 4.0.0
+
+ org.springframework.ai
+ spring-ai
+ 1.0.0-SNAPSHOT
+ ../../../pom.xml
+
+ spring-ai-autoconfigure-vector-store-couchbase
+ jar
+ Spring AI Auto Configuration for Couchbase vector store
+ Spring AI Auto Configuration for Couchbase 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-couchbase-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
+ couchbase
+ test
+
+
+ org.springframework.ai
+ spring-ai-transformers
+ ${project.parent.version}
+ test
+
+
+ org.springframework.ai
+ spring-ai-autoconfigure-retry
+ ${project.parent.version}
+ test
+
+
+ org.springframework.ai
+ spring-ai-autoconfigure-model-openai
+ ${project.parent.version}
+ test
+
+
+
diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfiguration.java
similarity index 95%
rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfiguration.java
rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfiguration.java
index 30cb8dad5..96adb2a48 100644
--- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfiguration.java
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfiguration.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.
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.ai.autoconfigure.vectorstore.couchbase;
+package org.springframework.ai.vectorstore.couchbase.autoconfigure;
import com.couchbase.client.java.Cluster;
import org.springframework.ai.embedding.EmbeddingModel;
diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreProperties.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreProperties.java
similarity index 93%
rename from spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreProperties.java
rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreProperties.java
index 288df510c..0aeb86a41 100644
--- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreProperties.java
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreProperties.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.
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.ai.autoconfigure.vectorstore.couchbase;
+package org.springframework.ai.vectorstore.couchbase.autoconfigure;
-import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties;
import org.springframework.ai.vectorstore.CouchbaseIndexOptimization;
import org.springframework.ai.vectorstore.CouchbaseSimilarityFunction;
+import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 000000000..f4fa474fa
--- /dev/null
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/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.couchbase.autoconfigure.CouchbaseSearchVectorStoreAutoConfiguration
diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseContainerMetadata.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseContainerMetadata.java
similarity index 90%
rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseContainerMetadata.java
rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseContainerMetadata.java
index ae3dbbf65..73bf9533e 100644
--- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseContainerMetadata.java
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseContainerMetadata.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.
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.ai.autoconfigure.vectorstore.couchbase;
+package org.springframework.ai.vectorstore.couchbase.autoconfigure;
import org.testcontainers.couchbase.BucketDefinition;
import org.testcontainers.utility.DockerImageName;
diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfigurationIT.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfigurationIT.java
similarity index 87%
rename from spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfigurationIT.java
rename to auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfigurationIT.java
index a53e02862..936a68d47 100644
--- a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/couchbase/CouchbaseSearchVectorStoreAutoConfigurationIT.java
+++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase/src/test/java/org/springframework/ai/vectorstore/couchbase/autoconfigure/CouchbaseSearchVectorStoreAutoConfigurationIT.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.
@@ -13,13 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.ai.autoconfigure.vectorstore.couchbase;
+package org.springframework.ai.vectorstore.couchbase.autoconfigure;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
-import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration;
-import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration;
import org.springframework.ai.document.Document;
+import org.springframework.ai.model.openai.autoconfigure.OpenAiEmbeddingAutoConfiguration;
+import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration;
import org.springframework.ai.vectorstore.CouchbaseIndexOptimization;
import org.springframework.ai.vectorstore.CouchbaseSimilarityFunction;
import org.springframework.ai.vectorstore.SearchRequest;
@@ -39,7 +39,10 @@ import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.springframework.ai.autoconfigure.vectorstore.couchbase.CouchbaseContainerMetadata.*;
+import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.COUCHBASE_IMAGE_ENTERPRISE;
+import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.PASSWORD;
+import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.USERNAME;
+import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.bucketDefinition;
/**
* @author Laurent Doguin
@@ -63,7 +66,7 @@ class CouchbaseSearchVectorStoreAutoConfigurationIT {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(CouchbaseAutoConfiguration.class,
CouchbaseSearchVectorStoreAutoConfiguration.class, RestClientAutoConfiguration.class,
- SpringAiRetryAutoConfiguration.class, OpenAiAutoConfiguration.class))
+ SpringAiRetryAutoConfiguration.class, OpenAiEmbeddingAutoConfiguration.class))
.withPropertyValues("spring.couchbase.connection-string=" + couchbaseContainer.getConnectionString(),
"spring.couchbase.username=" + couchbaseContainer.getUsername(),
"spring.couchbase.password=" + couchbaseContainer.getPassword(),
@@ -112,7 +115,7 @@ class CouchbaseSearchVectorStoreAutoConfigurationIT {
new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(CouchbaseAutoConfiguration.class,
CouchbaseSearchVectorStoreAutoConfiguration.class, RestClientAutoConfiguration.class,
- SpringAiRetryAutoConfiguration.class, OpenAiAutoConfiguration.class))
+ SpringAiRetryAutoConfiguration.class, OpenAiEmbeddingAutoConfiguration.class))
.withPropertyValues("spring.couchbase.connection-string=" + couchbaseContainer.getConnectionString(),
"spring.couchbase.username=" + couchbaseContainer.getUsername(),
"spring.couchbase.password=" + couchbaseContainer.getPassword(),
diff --git a/pom.xml b/pom.xml
index a869c5626..b3e7f63e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,8 +65,6 @@
auto-configurations/models/spring-ai-autoconfigure-model-watsonx-ai
auto-configurations/models/spring-ai-autoconfigure-model-zhipuai
-
-
auto-configurations/mcp/spring-ai-autoconfigure-mcp-client
auto-configurations/mcp/spring-ai-autoconfigure-mcp-server
@@ -74,6 +72,7 @@
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-cassandra
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-chroma
+ auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-gemfire
auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-hanadb
@@ -124,12 +123,12 @@
vector-stores/spring-ai-weaviate-store
spring-ai-spring-boot-starters/spring-ai-starter-coherence-store
- spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-aws-opensearch
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-cassandra
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-chroma
+ spring-ai-spring-boot-starters/spring-ai-starter-vector-store-couchbase
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-elasticsearch
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-gemfire
spring-ai-spring-boot-starters/spring-ai-starter-vector-store-hanadb
diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/couchbase.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/couchbase.adoc
index f6fbb34fd..5a29d793f 100644
--- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/couchbase.adoc
+++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/couchbase.adoc
@@ -23,7 +23,7 @@ To enable it, add the following dependency to your project's Maven `pom.xml` fil
----
org.springframework.ai
- spring-ai-couchbase-store-spring-boot-starter
+ spring-ai-starter-vector-store-couchbase
----
diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-couchbase/pom.xml
similarity index 80%
rename from spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store/pom.xml
rename to spring-ai-spring-boot-starters/spring-ai-starter-vector-store-couchbase/pom.xml
index 632ec455a..ca7a05958 100644
--- a/spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store/pom.xml
+++ b/spring-ai-spring-boot-starters/spring-ai-starter-vector-store-couchbase/pom.xml
@@ -7,7 +7,7 @@
1.0.0-SNAPSHOT
../../pom.xml
- spring-ai-couchbase-store-spring-boot-starter
+ spring-ai-starter-vector-store-couchbase
jar
Spring AI Starter - Couchbase Store
Spring AI Couchbase Store Auto Configuration
@@ -28,10 +28,14 @@
org.springframework.ai
- spring-ai-spring-boot-autoconfigure
+ spring-ai-autoconfigure-vector-store-couchbase
+ ${project.parent.version}
+
+
+ org.springframework.ai
+ spring-ai-autoconfigure-vector-store-observation
${project.parent.version}
-
org.springframework.ai
spring-ai-couchbase-store