Skip to content

Commit 8a17f68

Browse files
committed
Redis vector store builder refactoring
1 parent f602b87 commit 8a17f68

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/redis/RedisVectorStoreAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ public RedisVectorStore vectorStore(EmbeddingModel embeddingModel, RedisVectorSt
6161
ObjectProvider<VectorStoreObservationConvention> customObservationConvention,
6262
BatchingStrategy batchingStrategy) {
6363

64-
return RedisVectorStore
65-
.builder(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
64+
return RedisVectorStore.builder()
65+
.jedis(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
6666
.embeddingModel(embeddingModel)
6767
.initializeSchema(properties.isInitializeSchema())
6868
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))

vector-stores/spring-ai-redis-store/src/main/java/org/springframework/ai/redis/vectorstore/RedisVectorStore.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ public RedisVectorStore(RedisVectorStoreConfig config, EmbeddingModel embeddingM
155155
boolean initializeSchema, ObservationRegistry observationRegistry,
156156
VectorStoreObservationConvention customObservationConvention, BatchingStrategy batchingStrategy) {
157157

158-
this(builder(jedis).embeddingModel(embeddingModel)
158+
this(builder().jedis(jedis)
159+
.embeddingModel(embeddingModel)
159160
.indexName(config.indexName)
160161
.prefix(config.prefix)
161162
.contentFieldName(config.contentFieldName)
@@ -168,8 +169,11 @@ public RedisVectorStore(RedisVectorStoreConfig config, EmbeddingModel embeddingM
168169
.batchingStrategy(batchingStrategy));
169170
}
170171

171-
private RedisVectorStore(RedisBuilder builder) {
172+
protected RedisVectorStore(RedisBuilder builder) {
172173
super(builder);
174+
175+
Assert.notNull(builder.jedis, "JedisPooled must not be null");
176+
173177
this.jedis = builder.jedis;
174178
this.indexName = builder.indexName;
175179
this.prefix = builder.prefix;
@@ -388,13 +392,13 @@ public static MetadataField tag(String name) {
388392

389393
}
390394

391-
public static RedisBuilder builder(JedisPooled jedis) {
392-
return new RedisBuilder(jedis);
395+
public static RedisBuilder builder() {
396+
return new RedisBuilder();
393397
}
394398

395399
public static class RedisBuilder extends AbstractVectorStoreBuilder<RedisBuilder> {
396400

397-
private final JedisPooled jedis;
401+
private JedisPooled jedis;
398402

399403
private String indexName = DEFAULT_INDEX_NAME;
400404

@@ -412,9 +416,10 @@ public static class RedisBuilder extends AbstractVectorStoreBuilder<RedisBuilder
412416

413417
private BatchingStrategy batchingStrategy = new TokenCountBatchingStrategy();
414418

415-
public RedisBuilder(JedisPooled jedis) {
419+
public RedisBuilder jedis(JedisPooled jedis) {
416420
Assert.notNull(jedis, "JedisPooled must not be null");
417421
this.jedis = jedis;
422+
return this;
418423
}
419424

420425
/**

vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/redis/vectorstore/RedisVectorStoreIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,8 @@ public static class TestApplication {
257257
@Bean
258258
public RedisVectorStore vectorStore(EmbeddingModel embeddingModel,
259259
JedisConnectionFactory jedisConnectionFactory) {
260-
return RedisVectorStore
261-
.builder(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
260+
return RedisVectorStore.builder()
261+
.jedis(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
262262
.embeddingModel(embeddingModel)
263263
.metadataFields(MetadataField.tag("meta1"), MetadataField.tag("meta2"), MetadataField.tag("country"),
264264
MetadataField.numeric("year"))

vector-stores/spring-ai-redis-store/src/test/java/org/springframework/ai/redis/vectorstore/RedisVectorStoreObservationIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ public TestObservationRegistry observationRegistry() {
177177
@Bean
178178
public RedisVectorStore vectorStore(EmbeddingModel embeddingModel,
179179
JedisConnectionFactory jedisConnectionFactory, ObservationRegistry observationRegistry) {
180-
return RedisVectorStore
181-
.builder(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
180+
return RedisVectorStore.builder()
181+
.jedis(new JedisPooled(jedisConnectionFactory.getHostName(), jedisConnectionFactory.getPort()))
182182
.embeddingModel(embeddingModel)
183183
.observationRegistry(observationRegistry)
184184
.customObservationConvention(null)

0 commit comments

Comments
 (0)