Skip to content

Commit 80fd7cd

Browse files
committed
Weaviate vector store builder refactoring
1 parent 218c967 commit 80fd7cd

File tree

10 files changed

+406
-82
lines changed

10 files changed

+406
-82
lines changed

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfiguration.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
import org.springframework.ai.embedding.BatchingStrategy;
2626
import org.springframework.ai.embedding.EmbeddingModel;
2727
import org.springframework.ai.embedding.TokenCountBatchingStrategy;
28-
import org.springframework.ai.vectorstore.WeaviateVectorStore;
29-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig;
30-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField;
28+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore;
29+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore.WeaviateVectorStoreConfig;
30+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField;
3131
import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention;
3232
import org.springframework.beans.factory.ObjectProvider;
3333
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -81,18 +81,20 @@ public WeaviateVectorStore vectorStore(EmbeddingModel embeddingModel, WeaviateCl
8181
ObjectProvider<VectorStoreObservationConvention> customObservationConvention,
8282
BatchingStrategy batchingStrategy) {
8383

84-
WeaviateVectorStoreConfig.Builder configBuilder = WeaviateVectorStore.WeaviateVectorStoreConfig.builder()
85-
.withObjectClass(properties.getObjectClass())
86-
.withFilterableMetadataFields(properties.getFilterField()
84+
return WeaviateVectorStore.builder()
85+
.weaviateClient(weaviateClient)
86+
.embeddingModel(embeddingModel)
87+
.objectClass(properties.getObjectClass())
88+
.filterMetadataFields(properties.getFilterField()
8789
.entrySet()
8890
.stream()
89-
.map(e -> new MetadataField(e.getKey(), e.getValue()))
91+
.map(e -> new WeaviateVectorStore.MetadataField(e.getKey(), e.getValue()))
9092
.toList())
91-
.withConsistencyLevel(properties.getConsistencyLevel());
92-
93-
return new WeaviateVectorStore(configBuilder.build(), embeddingModel, weaviateClient,
94-
observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP),
95-
customObservationConvention.getIfAvailable(() -> null), batchingStrategy);
93+
.consistencyLevel(WeaviateVectorStore.ConsistentLevel.valueOf(properties.getConsistencyLevel().name()))
94+
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
95+
.customObservationConvention(customObservationConvention.getIfAvailable(() -> null))
96+
.batchingStrategy(batchingStrategy)
97+
.build();
9698
}
9799

98100
static class PropertiesWeaviateConnectionDetails implements WeaviateConnectionDetails {

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreProperties.java

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

1919
import java.util.Map;
2020

21-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig;
22-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.ConsistentLevel;
23-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField;
21+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore;
22+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore.ConsistentLevel;
23+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore.MetadataField;
2424
import org.springframework.boot.context.properties.ConfigurationProperties;
2525

2626
/**
@@ -41,7 +41,7 @@ public class WeaviateVectorStoreProperties {
4141

4242
private String objectClass = "SpringAiWeaviate";
4343

44-
private ConsistentLevel consistencyLevel = WeaviateVectorStoreConfig.ConsistentLevel.ONE;
44+
private ConsistentLevel consistencyLevel = WeaviateVectorStore.ConsistentLevel.ONE;
4545

4646
/**
4747
* spring.ai.vectorstore.weaviate.filter-field.<field-name>=<field-type>

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.springframework.ai.transformers.TransformersEmbeddingModel;
3333
import org.springframework.ai.vectorstore.SearchRequest;
3434
import org.springframework.ai.vectorstore.VectorStore;
35-
import org.springframework.ai.vectorstore.WeaviateVectorStore.WeaviateVectorStoreConfig.MetadataField;
35+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore.MetadataField;
3636
import org.springframework.ai.vectorstore.observation.VectorStoreObservationContext;
3737
import org.springframework.boot.autoconfigure.AutoConfigurations;
3838
import org.springframework.boot.test.context.runner.ApplicationContextRunner;

spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.springframework.ai.transformers.TransformersEmbeddingModel;
3333
import org.springframework.ai.vectorstore.SearchRequest;
3434
import org.springframework.ai.vectorstore.VectorStore;
35-
import org.springframework.ai.vectorstore.WeaviateVectorStore;
35+
import org.springframework.ai.vectorstore.weaviate.WeaviateVectorStore;
3636
import org.springframework.beans.factory.annotation.Autowired;
3737
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
3838
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
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.vectorstore.weaviate;
1818

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

0 commit comments

Comments
 (0)