Skip to content

Commit 9f3ebd1

Browse files
committed
Chroma vector store builer refactoring
1 parent 979de19 commit 9f3ebd1

File tree

6 files changed

+29
-33
lines changed

6 files changed

+29
-33
lines changed

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/chroma/ChromaVectorStoreAutoConfiguration.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,13 @@ public ChromaVectorStore vectorStore(EmbeddingModel embeddingModel, ChromaApi ch
8686
ChromaVectorStoreProperties storeProperties, ObjectProvider<ObservationRegistry> observationRegistry,
8787
ObjectProvider<VectorStoreObservationConvention> customObservationConvention,
8888
BatchingStrategy chromaBatchingStrategy) {
89-
return new ChromaVectorStore(embeddingModel, chromaApi, storeProperties.getCollectionName(),
90-
storeProperties.isInitializeSchema(), observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP),
91-
customObservationConvention.getIfAvailable(() -> null), chromaBatchingStrategy);
89+
return ChromaVectorStore.builder(embeddingModel, chromaApi)
90+
.collectionName(storeProperties.getCollectionName())
91+
.initializeSchema(storeProperties.isInitializeSchema())
92+
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
93+
.customObservationConvention(customObservationConvention.getIfAvailable(() -> null))
94+
.batchingStrategy(chromaBatchingStrategy)
95+
.build();
9296
}
9397

9498
static class PropertiesChromaConnectionDetails implements ChromaConnectionDetails {

vector-stores/spring-ai-chroma-store/src/main/java/org/springframework/ai/vectorstore/ChromaVectorStore.java

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -83,31 +83,6 @@ public class ChromaVectorStore extends AbstractObservationVectorStore implements
8383

8484
private boolean initialized = false;
8585

86-
public ChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi, boolean initializeSchema) {
87-
this(embeddingModel, chromaApi, DEFAULT_COLLECTION_NAME, initializeSchema);
88-
}
89-
90-
public ChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi, String collectionName,
91-
boolean initializeSchema) {
92-
this(embeddingModel, chromaApi, collectionName, initializeSchema, ObservationRegistry.NOOP, null,
93-
new TokenCountBatchingStrategy());
94-
}
95-
96-
public ChromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi, String collectionName,
97-
boolean initializeSchema, ObservationRegistry observationRegistry,
98-
VectorStoreObservationConvention customObservationConvention, BatchingStrategy batchingStrategy) {
99-
100-
super(observationRegistry, customObservationConvention);
101-
102-
this.embeddingModel = embeddingModel;
103-
this.chromaApi = chromaApi;
104-
this.collectionName = collectionName;
105-
this.initializeSchema = initializeSchema;
106-
this.filterExpressionConverter = new ChromaFilterExpressionConverter();
107-
this.batchingStrategy = batchingStrategy;
108-
this.objectMapper = JsonMapper.builder().addModules(JacksonUtils.instantiateAvailableModules()).build();
109-
}
110-
11186
private ChromaVectorStore(Builder builder) {
11287
super(builder.observationRegistry, builder.customObservationConvention);
11388
this.embeddingModel = builder.embeddingModel;
@@ -128,6 +103,10 @@ private ChromaVectorStore(Builder builder) {
128103
}
129104
}
130105

106+
public static Builder builder(EmbeddingModel embeddingModel, ChromaApi chromaApi) {
107+
return new Builder(embeddingModel, chromaApi);
108+
}
109+
131110
public void setFilterExpressionConverter(FilterExpressionConverter filterExpressionConverter) {
132111
Assert.notNull(filterExpressionConverter, "FilterExpressionConverter should not be null.");
133112
this.filterExpressionConverter = filterExpressionConverter;

vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/BasicAuthChromaWhereIT.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ public ChromaApi chromaApi(RestClient.Builder builder) {
110110

111111
@Bean
112112
public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) {
113-
return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection", true);
113+
return ChromaVectorStore.builder(embeddingModel, chromaApi)
114+
.collectionName("TestCollection")
115+
.initializeSchema(true)
116+
.build();
114117
}
115118

116119
@Bean

vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreIT.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ public ChromaApi chromaApi(RestClient.Builder builder) {
249249

250250
@Bean
251251
public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) {
252-
return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection", true);
252+
return ChromaVectorStore.builder(embeddingModel, chromaApi)
253+
.collectionName("TestCollection")
254+
.initializeSchema(true)
255+
.build();
253256
}
254257

255258
@Bean

vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/ChromaVectorStoreObservationIT.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,12 @@ public ChromaApi chromaApi(RestClient.Builder builder) {
176176
@Bean
177177
public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi,
178178
ObservationRegistry observationRegistry) {
179-
return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection", true, observationRegistry, null,
180-
new TokenCountBatchingStrategy());
179+
return ChromaVectorStore.builder(embeddingModel, chromaApi)
180+
.collectionName("TestCollection")
181+
.initializeSchema(true)
182+
.observationRegistry(observationRegistry)
183+
.batchingStrategy(new TokenCountBatchingStrategy())
184+
.build();
181185
}
182186

183187
@Bean

vector-stores/spring-ai-chroma-store/src/test/java/org/springframework/ai/vectorstore/TokenSecuredChromaWhereIT.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,10 @@ public ChromaApi chromaApi(RestClient.Builder builder) {
143143

144144
@Bean
145145
public VectorStore chromaVectorStore(EmbeddingModel embeddingModel, ChromaApi chromaApi) {
146-
return new ChromaVectorStore(embeddingModel, chromaApi, "TestCollection", true);
146+
return ChromaVectorStore.builder(embeddingModel, chromaApi)
147+
.collectionName("TestCollection")
148+
.initializeSchema(true)
149+
.build();
147150
}
148151

149152
@Bean

0 commit comments

Comments
 (0)