Skip to content

Commit 228056e

Browse files
committed
Cassandra vector store builder refactoring
- Deprecate CassandraVectorStoreConfig - Move its contents to a top level Builder class within the CassandraVectorStore Restructuring packages for Cassandra vector store and chat memory classes
1 parent f7e8e7f commit 228056e

File tree

20 files changed

+1239
-589
lines changed

20 files changed

+1239
-589
lines changed

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/chat/memory/cassandra/CassandraChatMemoryAutoConfiguration.java

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

1919
import com.datastax.oss.driver.api.core.CqlSession;
2020

21-
import org.springframework.ai.chat.memory.CassandraChatMemory;
22-
import org.springframework.ai.chat.memory.CassandraChatMemoryConfig;
21+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemory;
22+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryConfig;
2323
import org.springframework.boot.autoconfigure.AutoConfiguration;
2424
import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/chat/memory/cassandra/CassandraChatMemoryProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.slf4j.LoggerFactory;
2323

2424
import org.springframework.ai.autoconfigure.chat.memory.CommonChatMemoryProperties;
25-
import org.springframework.ai.chat.memory.CassandraChatMemoryConfig;
25+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryConfig;
2626
import org.springframework.boot.context.properties.ConfigurationProperties;
2727
import org.springframework.lang.Nullable;
2828

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreAutoConfiguration.java

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
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.CassandraVectorStore;
29-
import org.springframework.ai.vectorstore.CassandraVectorStoreConfig;
28+
import org.springframework.ai.vectorstore.cassandra.CassandraVectorStore;
3029
import org.springframework.ai.vectorstore.observation.VectorStoreObservationConvention;
3130
import org.springframework.beans.factory.ObjectProvider;
3231
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -63,25 +62,21 @@ public CassandraVectorStore vectorStore(EmbeddingModel embeddingModel, Cassandra
6362
ObjectProvider<VectorStoreObservationConvention> customObservationConvention,
6463
BatchingStrategy batchingStrategy) {
6564

66-
var builder = CassandraVectorStoreConfig.builder().withCqlSession(cqlSession);
67-
68-
builder = builder.withKeyspaceName(properties.getKeyspace())
69-
.withTableName(properties.getTable())
70-
.withContentColumnName(properties.getContentColumnName())
71-
.withEmbeddingColumnName(properties.getEmbeddingColumnName())
72-
.withIndexName(properties.getIndexName())
73-
.withFixedThreadPoolExecutorSize(properties.getFixedThreadPoolExecutorSize());
74-
75-
if (!properties.isInitializeSchema()) {
76-
builder = builder.disallowSchemaChanges();
77-
}
78-
if (properties.getReturnEmbeddings()) {
79-
builder = builder.returnEmbeddings();
80-
}
81-
82-
return new CassandraVectorStore(builder.build(), embeddingModel,
83-
observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP),
84-
customObservationConvention.getIfAvailable(() -> null), batchingStrategy);
65+
return CassandraVectorStore.builder()
66+
.session(cqlSession)
67+
.keyspace(properties.getKeyspace())
68+
.table(properties.getTable())
69+
.contentColumnName(properties.getContentColumnName())
70+
.embeddingColumnName(properties.getEmbeddingColumnName())
71+
.indexName(properties.getIndexName())
72+
.fixedThreadPoolExecutorSize(properties.getFixedThreadPoolExecutorSize())
73+
.disallowSchemaChanges(!properties.isInitializeSchema())
74+
.returnEmbeddings(properties.getReturnEmbeddings())
75+
.embeddingModel(embeddingModel)
76+
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
77+
.customObservationConvention(customObservationConvention.getIfAvailable(() -> null))
78+
.batchingStrategy(batchingStrategy)
79+
.build();
8580
}
8681

8782
@Bean

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStoreProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.slf4j.LoggerFactory;
2222

2323
import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties;
24-
import org.springframework.ai.vectorstore.CassandraVectorStoreConfig;
24+
import org.springframework.ai.vectorstore.cassandra.CassandraVectorStoreConfig;
2525
import org.springframework.boot.context.properties.ConfigurationProperties;
2626

2727
/**

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/chat/memory/cassandra/CassandraChatMemoryAutoConfigurationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.testcontainers.junit.jupiter.Testcontainers;
2727
import org.testcontainers.utility.DockerImageName;
2828

29-
import org.springframework.ai.chat.memory.CassandraChatMemory;
29+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemory;
3030
import org.springframework.ai.chat.messages.AssistantMessage;
3131
import org.springframework.ai.chat.messages.MessageType;
3232
import org.springframework.ai.chat.messages.UserMessage;

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/chat/memory/cassandra/CassandraChatMemoryPropertiesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import org.junit.jupiter.api.Test;
2222

23-
import org.springframework.ai.chat.memory.CassandraChatMemoryConfig;
23+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryConfig;
2424

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

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/cassandra/CassandraVectorStorePropertiesTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

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

21-
import org.springframework.ai.vectorstore.CassandraVectorStoreConfig;
21+
import org.springframework.ai.vectorstore.cassandra.CassandraVectorStoreConfig;
2222

2323
import static org.assertj.core.api.Assertions.assertThat;
2424

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.chat.memory;
17+
package org.springframework.ai.chat.memory.cassandra;
1818

1919
import java.time.Instant;
2020
import java.util.ArrayList;
@@ -32,7 +32,8 @@
3232
import com.datastax.oss.driver.api.querybuilder.select.Select;
3333
import com.datastax.oss.driver.shaded.guava.common.base.Preconditions;
3434

35-
import org.springframework.ai.chat.memory.CassandraChatMemoryConfig.SchemaColumn;
35+
import org.springframework.ai.chat.memory.ChatMemory;
36+
import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryConfig.SchemaColumn;
3637
import org.springframework.ai.chat.messages.AssistantMessage;
3738
import org.springframework.ai.chat.messages.Message;
3839
import org.springframework.ai.chat.messages.UserMessage;
@@ -42,7 +43,7 @@
4243
CassandraChatMemory.create(CassandraChatMemoryConfig.builder().withTimeToLive(Duration.ofDays(1)).build());
4344
</code>
4445
*
45-
* For example @see org.springframework.ai.chat.memory.CassandraChatMemory
46+
* For example @see org.springframework.ai.chat.memory.cassandra.CassandraChatMemory
4647
*
4748
* @author Mick Semb Wever
4849
* @since 1.0.0
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.chat.memory;
17+
package org.springframework.ai.chat.memory.cassandra;
1818

1919
import java.net.InetSocketAddress;
2020
import java.time.Duration;

0 commit comments

Comments
 (0)