Skip to content

Commit d3498a1

Browse files
committed
refactor: move PgVectorStore to dedicated package and update builder pattern
- Move PgVectorStore and related classes to org.springframework.ai.pg.vectorstore package - Update builder pattern to use more idiomatic method names (e.g. withSchemaName -> schemaName) - Deprecate existing constructors and old Builder class in favor of new static builder() method - Update tests to reflect the new builder style usage
1 parent 6307377 commit d3498a1

File tree

18 files changed

+280
-120
lines changed

18 files changed

+280
-120
lines changed

spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/client/advisor/RetrievalAugmentationAdvisorIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever;
3939
import org.springframework.ai.reader.markdown.MarkdownDocumentReader;
4040
import org.springframework.ai.reader.markdown.config.MarkdownDocumentReaderConfig;
41-
import org.springframework.ai.vectorstore.PgVectorStore;
41+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
4242
import org.springframework.beans.factory.annotation.Autowired;
4343
import org.springframework.beans.factory.annotation.Value;
4444
import org.springframework.boot.test.context.SpringBootTest;

spring-ai-integration-tests/src/test/java/org/springframework/ai/integration/tests/rag/retrieval/search/VectorStoreDocumentRetrieverIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.springframework.ai.rag.Query;
3030
import org.springframework.ai.rag.retrieval.search.DocumentRetriever;
3131
import org.springframework.ai.rag.retrieval.search.VectorStoreDocumentRetriever;
32-
import org.springframework.ai.vectorstore.PgVectorStore;
32+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
3333
import org.springframework.ai.vectorstore.filter.Filter;
3434
import org.springframework.beans.factory.annotation.Autowired;
3535
import org.springframework.boot.test.context.SpringBootTest;

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfiguration.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.springframework.ai.embedding.BatchingStrategy;
2424
import org.springframework.ai.embedding.EmbeddingModel;
2525
import org.springframework.ai.embedding.TokenCountBatchingStrategy;
26-
import org.springframework.ai.vectorstore.PgVectorStore;
26+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
2727
import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention;
2828
import org.springframework.beans.factory.ObjectProvider;
2929
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -62,18 +62,20 @@ public PgVectorStore vectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel embed
6262

6363
var initializeSchema = properties.isInitializeSchema();
6464

65-
return new PgVectorStore.Builder(jdbcTemplate, embeddingModel).withSchemaName(properties.getSchemaName())
66-
.withVectorTableName(properties.getTableName())
67-
.withVectorTableValidationsEnabled(properties.isSchemaValidation())
68-
.withDimensions(properties.getDimensions())
69-
.withDistanceType(properties.getDistanceType())
70-
.withRemoveExistingVectorStoreTable(properties.isRemoveExistingVectorStoreTable())
71-
.withIndexType(properties.getIndexType())
72-
.withInitializeSchema(initializeSchema)
73-
.withObservationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
74-
.withSearchObservationConvention(customObservationConvention.getIfAvailable(() -> null))
75-
.withBatchingStrategy(batchingStrategy)
76-
.withMaxDocumentBatchSize(properties.getMaxDocumentBatchSize())
65+
return PgVectorStore.builder(jdbcTemplate)
66+
.embeddingModel(embeddingModel)
67+
.schemaName(properties.getSchemaName())
68+
.vectorTableName(properties.getTableName())
69+
.vectorTableValidationsEnabled(properties.isSchemaValidation())
70+
.dimensions(properties.getDimensions())
71+
.distanceType(properties.getDistanceType())
72+
.removeExistingVectorStoreTable(properties.isRemoveExistingVectorStoreTable())
73+
.indexType(properties.getIndexType())
74+
.initializeSchema(initializeSchema)
75+
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
76+
.customObservationConvention(customObservationConvention.getIfAvailable(() -> null))
77+
.batchingStrategy(batchingStrategy)
78+
.maxDocumentBatchSize(properties.getMaxDocumentBatchSize())
7779
.build();
7880
}
7981

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreProperties.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
package org.springframework.ai.autoconfigure.vectorstore.pgvector;
1818

1919
import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties;
20-
import org.springframework.ai.vectorstore.PgVectorStore;
21-
import org.springframework.ai.vectorstore.PgVectorStore.PgDistanceType;
22-
import org.springframework.ai.vectorstore.PgVectorStore.PgIndexType;
20+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
21+
import org.springframework.ai.pg.vectorstore.PgVectorStore.PgDistanceType;
22+
import org.springframework.ai.pg.vectorstore.PgVectorStore.PgIndexType;
2323
import org.springframework.boot.context.properties.ConfigurationProperties;
2424

2525
/**

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStoreAutoConfigurationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.springframework.ai.embedding.EmbeddingModel;
3434
import org.springframework.ai.observation.conventions.VectorStoreProvider;
3535
import org.springframework.ai.transformers.TransformersEmbeddingModel;
36-
import org.springframework.ai.vectorstore.PgVectorStore;
36+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
3737
import org.springframework.ai.vectorstore.SearchRequest;
3838
import org.springframework.ai.vectorstore.observation.VectorStoreObservationContext;
3939
import org.springframework.boot.autoconfigure.AutoConfigurations;

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/pgvector/PgVectorStorePropertiesTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818

1919
import org.junit.jupiter.api.Test;
2020

21-
import org.springframework.ai.vectorstore.PgVectorStore;
22-
import org.springframework.ai.vectorstore.PgVectorStore.PgDistanceType;
23-
import org.springframework.ai.vectorstore.PgVectorStore.PgIndexType;
21+
import org.springframework.ai.pg.vectorstore.PgVectorStore;
22+
import org.springframework.ai.pg.vectorstore.PgVectorStore.PgDistanceType;
23+
import org.springframework.ai.pg.vectorstore.PgVectorStore.PgIndexType;
2424

2525
import static org.assertj.core.api.Assertions.assertThat;
2626

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.vectorstore;
17+
package org.springframework.ai.pg.vectorstore;
1818

1919
import java.util.List;
2020

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.vectorstore;
17+
package org.springframework.ai.pg.vectorstore;
1818

1919
import java.util.ArrayList;
2020
import java.util.List;

0 commit comments

Comments
 (0)