diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml similarity index 89% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/pom.xml rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml index d6ad7ff70..587452225 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml @@ -7,12 +7,12 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../../../../pom.xml + ../../../../../../pom.xml - spring-ai-autoconfigure-model-chat-memory-cassandra + spring-ai-autoconfigure-model-chat-memory-repository-cassandra jar - Spring AI Apache Cassandra Chat Memory Auto Configuration - Spring AI Apache Cassandra Chat Memory Auto Configuration + Spring AI Apache Cassandra Chat Memory Repository Auto Configuration + Spring AI Apache Cassandra Chat Memory Repository Auto Configuration https://github.com/spring-projects/spring-ai diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java similarity index 88% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfiguration.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java index 6dad9d11f..5d5abc2e3 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java @@ -29,7 +29,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; /** - * {@link AutoConfiguration Auto-configuration} for {@link CassandraChatMemory}. + * {@link AutoConfiguration Auto-configuration} for {@link CassandraChatMemoryRepository}. * * @author Mick Semb Wever * @author Jihoon Kim @@ -37,12 +37,13 @@ import org.springframework.context.annotation.Bean; */ @AutoConfiguration(after = CassandraAutoConfiguration.class, before = ChatMemoryAutoConfiguration.class) @ConditionalOnClass({ CassandraChatMemoryRepository.class, CqlSession.class }) -@EnableConfigurationProperties(CassandraChatMemoryProperties.class) -public class CassandraChatMemoryAutoConfiguration { +@EnableConfigurationProperties(CassandraChatMemoryRepositoryProperties.class) +public class CassandraChatMemoryRepositoryAutoConfiguration { @Bean @ConditionalOnMissingBean - public CassandraChatMemoryRepository chatMemory(CassandraChatMemoryProperties properties, CqlSession cqlSession) { + public CassandraChatMemoryRepository cassandraChatMemoryRepository( + CassandraChatMemoryRepositoryProperties properties, CqlSession cqlSession) { var builder = CassandraChatMemoryConfig.builder().withCqlSession(cqlSession); diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java similarity index 93% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryProperties.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java index 58a54f27e..62998d82c 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryProperties.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java @@ -32,12 +32,12 @@ import org.springframework.lang.Nullable; * @author Jihoon Kim * @since 1.0.0 */ -@ConfigurationProperties(CassandraChatMemoryProperties.CONFIG_PREFIX) -public class CassandraChatMemoryProperties { +@ConfigurationProperties(CassandraChatMemoryRepositoryProperties.CONFIG_PREFIX) +public class CassandraChatMemoryRepositoryProperties { public static final String CONFIG_PREFIX = "spring.ai.chat.memory.repository.cassandra"; - private static final Logger logger = LoggerFactory.getLogger(CassandraChatMemoryProperties.class); + private static final Logger logger = LoggerFactory.getLogger(CassandraChatMemoryRepositoryProperties.class); private String keyspace = CassandraChatMemoryConfig.DEFAULT_KEYSPACE_NAME; diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 91% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index fd63b9319..79e87bb7a 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -org.springframework.ai.model.chat.memory.repository.cassandra.autoconfigure.CassandraChatMemoryAutoConfiguration +org.springframework.ai.model.chat.memory.repository.cassandra.autoconfigure.CassandraChatMemoryRepositoryAutoConfiguration diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java similarity index 91% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java index 22ecdf482..af898108c 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java @@ -42,7 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @since 1.0.0 */ @Testcontainers -class CassandraChatMemoryAutoConfigurationIT { +class CassandraChatMemoryRepositoryAutoConfigurationIT { static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("cassandra"); @@ -50,8 +50,8 @@ class CassandraChatMemoryAutoConfigurationIT { static CassandraContainer cassandraContainer = new CassandraContainer(DEFAULT_IMAGE_NAME.withTag("5.0")); private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration( - AutoConfigurations.of(CassandraChatMemoryAutoConfiguration.class, CassandraAutoConfiguration.class)) + .withConfiguration(AutoConfigurations.of(CassandraChatMemoryRepositoryAutoConfiguration.class, + CassandraAutoConfiguration.class)) .withPropertyValues("spring.ai.chat.memory.cassandra.keyspace=test_autoconfigure"); @Test @@ -85,7 +85,8 @@ class CassandraChatMemoryAutoConfigurationIT { assertThat(memory.findByConversationId(sessionId).get(0).getMessageType()).isEqualTo(MessageType.USER); assertThat(memory.findByConversationId(sessionId).get(0).getText()).isEqualTo("test question"); - CassandraChatMemoryProperties properties = context.getBean(CassandraChatMemoryProperties.class); + CassandraChatMemoryRepositoryProperties properties = context + .getBean(CassandraChatMemoryRepositoryProperties.class); assertThat(properties.getTimeToLive()).isEqualTo(getTimeToLive()); }); } @@ -97,7 +98,8 @@ class CassandraChatMemoryAutoConfigurationIT { .withPropertyValues("spring.cassandra.localDatacenter=" + cassandraContainer.getLocalDatacenter()) .withPropertyValues("spring.ai.chat.memory.repository.cassandra.time-to-live=" + getTimeToLiveString()) .run(context -> { - CassandraChatMemoryProperties properties = context.getBean(CassandraChatMemoryProperties.class); + CassandraChatMemoryRepositoryProperties properties = context + .getBean(CassandraChatMemoryRepositoryProperties.class); assertThat(properties.getTimeToLive()).isEqualTo(Duration.parse(getTimeToLiveString())); }); } diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryPropertiesTest.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java similarity index 92% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryPropertiesTest.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java index 7f6cab14b..b962ee19f 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryPropertiesTest.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java @@ -29,11 +29,11 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Jihoon Kim * @since 1.0.0 */ -class CassandraChatMemoryPropertiesTest { +class CassandraChatMemoryRepositoryPropertiesTest { @Test void defaultValues() { - var props = new CassandraChatMemoryProperties(); + var props = new CassandraChatMemoryRepositoryProperties(); assertThat(props.getKeyspace()).isEqualTo(CassandraChatMemoryConfig.DEFAULT_KEYSPACE_NAME); assertThat(props.getTable()).isEqualTo(CassandraChatMemoryConfig.DEFAULT_TABLE_NAME); assertThat(props.getAssistantColumn()).isEqualTo(CassandraChatMemoryConfig.DEFAULT_ASSISTANT_COLUMN_NAME); @@ -44,7 +44,7 @@ class CassandraChatMemoryPropertiesTest { @Test void customValues() { - var props = new CassandraChatMemoryProperties(); + var props = new CassandraChatMemoryRepositoryProperties(); props.setKeyspace("my_keyspace"); props.setTable("my_table"); props.setAssistantColumn("my_assistant_column"); diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml similarity index 90% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/pom.xml rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml index 075b40ae5..abccac328 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml @@ -7,12 +7,12 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../../../../pom.xml + ../../../../../../pom.xml - spring-ai-autoconfigure-model-chat-memory-jdbc + spring-ai-autoconfigure-model-chat-memory-repository-jdbc jar - Spring AI JDBC Chat Memory Auto Configuration - Spring JDBC AI Chat Memory Auto Configuration + Spring AI JDBC Chat Memory Repository Auto Configuration + Spring JDBC AI Chat Memory Repository Auto Configuration https://github.com/spring-projects/spring-ai diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java similarity index 91% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java index 2d0a89403..46cd9077e 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java @@ -42,11 +42,9 @@ import org.springframework.jdbc.core.JdbcTemplate; @EnableConfigurationProperties(JdbcChatMemoryRepositoryProperties.class) public class JdbcChatMemoryRepositoryAutoConfiguration { - private static final Logger logger = LoggerFactory.getLogger(JdbcChatMemoryRepositoryAutoConfiguration.class); - @Bean @ConditionalOnMissingBean - JdbcChatMemoryRepository chatMemoryRepository(JdbcTemplate jdbcTemplate, DataSource dataSource) { + JdbcChatMemoryRepository jdbcChatMemoryRepository(JdbcTemplate jdbcTemplate, DataSource dataSource) { JdbcChatMemoryDialect dialect = JdbcChatMemoryDialect.from(dataSource); return JdbcChatMemoryRepository.builder().jdbcTemplate(jdbcTemplate).dialect(dialect).build(); } diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializer.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializer.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializer.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializer.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPropertiesTests.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPropertiesTests.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPropertiesTests.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPropertiesTests.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/resources/schema.sql b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/resources/schema.sql similarity index 100% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc/src/test/resources/schema.sql rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/resources/schema.sql diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml similarity index 90% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml index 5fecf13a3..c38ae7cc5 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml @@ -7,12 +7,12 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../../../../pom.xml + ../../../../../../pom.xml - spring-ai-autoconfigure-model-chat-memory-neo4j + spring-ai-autoconfigure-model-chat-memory-repository-neo4j jar - Spring AI Neo4j Chat Memory Auto Configuration - Spring Neo4j AI Chat Memory Auto Configuration + Spring AI Neo4j Chat Memory Repository Auto Configuration + Spring Neo4j AI Chat Memory Repository Auto Configuration https://github.com/spring-projects/spring-ai diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java similarity index 86% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryAutoConfiguration.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java index 3a7f66aae..085dfc231 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model.chat.memory.neo4j.autoconfigure; +package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import org.neo4j.driver.Driver; @@ -36,12 +36,13 @@ import org.springframework.context.annotation.Bean; */ @AutoConfiguration(after = Neo4jAutoConfiguration.class, before = ChatMemoryAutoConfiguration.class) @ConditionalOnClass({ Neo4jChatMemoryRepository.class, Driver.class }) -@EnableConfigurationProperties(Neo4jChatMemoryProperties.class) -public class Neo4jChatMemoryAutoConfiguration { +@EnableConfigurationProperties(Neo4jChatMemoryRepositoryProperties.class) +public class Neo4jChatMemoryRepositoryAutoConfiguration { @Bean @ConditionalOnMissingBean - public Neo4jChatMemoryRepository chatMemoryRepository(Neo4jChatMemoryProperties properties, Driver driver) { + public Neo4jChatMemoryRepository neo4jChatMemoryRepository(Neo4jChatMemoryRepositoryProperties properties, + Driver driver) { var builder = Neo4jChatMemoryConfig.builder() .withMediaLabel(properties.getMediaLabel()) diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java similarity index 92% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryProperties.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java index 1a970ef9b..a2518d40f 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryProperties.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model.chat.memory.neo4j.autoconfigure; +package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryConfig; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -24,8 +24,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Enrico Rampazzo */ -@ConfigurationProperties(Neo4jChatMemoryProperties.CONFIG_PREFIX) -public class Neo4jChatMemoryProperties { +@ConfigurationProperties(Neo4jChatMemoryRepositoryProperties.CONFIG_PREFIX) +public class Neo4jChatMemoryRepositoryProperties { public static final String CONFIG_PREFIX = "spring.ai.chat.memory.neo4j"; diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 84% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 76a1041cd..9437ed379 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -org.springframework.ai.model.chat.memory.neo4j.autoconfigure.Neo4jChatMemoryAutoConfiguration +org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure.Neo4jChatMemoryRepositoryAutoConfiguration diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryPropertiesTest.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java similarity index 88% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryPropertiesTest.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java index 10022c2f6..2fd98bbdb 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryPropertiesTest.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model.chat.memory.neo4j.autoconfigure; +package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import org.junit.jupiter.api.Test; @@ -26,11 +26,11 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Enrico Rampazzo * @since 1.0.0 */ -class Neo4jChatMemoryPropertiesTest { +class Neo4JChatMemoryRepositoryPropertiesTest { @Test void defaultValues() { - var props = new Neo4jChatMemoryProperties(); + var props = new Neo4jChatMemoryRepositoryProperties(); assertThat(props.getMediaLabel()).isEqualTo(Neo4jChatMemoryConfig.DEFAULT_MEDIA_LABEL); assertThat(props.getMessageLabel()).isEqualTo(Neo4jChatMemoryConfig.DEFAULT_MESSAGE_LABEL); assertThat(props.getMetadataLabel()).isEqualTo(Neo4jChatMemoryConfig.DEFAULT_METADATA_LABEL); diff --git a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java similarity index 96% rename from auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java index 5826a0ae9..c9166ae12 100644 --- a/auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j/src/test/java/org/springframework/ai/model/chat/memory/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.model.chat.memory.neo4j.autoconfigure; +package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import java.net.URI; import java.nio.charset.StandardCharsets; @@ -23,7 +23,7 @@ import java.util.Map; import java.util.UUID; import org.junit.jupiter.api.Test; -import org.springframework.ai.chat.memory.ChatMemory; + import org.springframework.ai.chat.memory.ChatMemoryRepository; import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepository; import org.testcontainers.containers.Neo4jContainer; @@ -63,8 +63,8 @@ class Neo4jChatMemoryRepositoryAutoConfigurationIT { .withoutAuthentication() .withExposedPorts(7474, 7687); - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(Neo4jChatMemoryAutoConfiguration.class, Neo4jAutoConfiguration.class)); + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration( + AutoConfigurations.of(Neo4jChatMemoryRepositoryAutoConfiguration.class, Neo4jAutoConfiguration.class)); @Test void addAndGet() { diff --git a/pom.xml b/pom.xml index f2d4af02f..9e510a4cf 100644 --- a/pom.xml +++ b/pom.xml @@ -87,9 +87,9 @@ auto-configurations/models/chat/client/spring-ai-autoconfigure-model-chat-client auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory - auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-cassandra - auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-jdbc - auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-neo4j + auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra + auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc + auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j auto-configurations/models/chat/observation/spring-ai-autoconfigure-model-chat-observation @@ -180,9 +180,6 @@ spring-ai-spring-boot-starters/spring-ai-starter-model-azure-openai spring-ai-spring-boot-starters/spring-ai-starter-model-bedrock spring-ai-spring-boot-starters/spring-ai-starter-model-bedrock-converse - spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-cassandra - spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-jdbc - spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-neo4j spring-ai-spring-boot-starters/spring-ai-starter-model-huggingface spring-ai-spring-boot-starters/spring-ai-starter-model-minimax spring-ai-spring-boot-starters/spring-ai-starter-model-mistral-ai @@ -197,6 +194,10 @@ spring-ai-spring-boot-starters/spring-ai-starter-model-zhipuai spring-ai-spring-boot-starters/spring-ai-starter-model-deepseek + spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra + spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc + spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j + spring-ai-spring-boot-starters/spring-ai-starter-mcp-client spring-ai-spring-boot-starters/spring-ai-starter-mcp-server spring-ai-spring-boot-starters/spring-ai-starter-mcp-client-webflux diff --git a/spring-ai-bom/pom.xml b/spring-ai-bom/pom.xml index ae4bdb03a..66875160c 100644 --- a/spring-ai-bom/pom.xml +++ b/spring-ai-bom/pom.xml @@ -481,21 +481,23 @@ ${project.version} + + org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-cassandra + spring-ai-autoconfigure-model-chat-memory-repository-cassandra ${project.version} org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-jdbc + spring-ai-autoconfigure-model-chat-memory-repository-jdbc ${project.version} org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-neo4j + spring-ai-autoconfigure-model-chat-memory-repository-neo4j ${project.version} @@ -1017,23 +1019,23 @@ ${project.version} - + org.springframework.ai - spring-ai-starter-model-chat-memory-cassandra + spring-ai-starter-model-chat-memory-repository-cassandra ${project.version} org.springframework.ai - spring-ai-starter-model-chat-memory-jdbc + spring-ai-starter-model-chat-memory-repository-jdbc ${project.version} org.springframework.ai - spring-ai-starter-model-chat-memory-neo4j + spring-ai-starter-model-chat-memory-repository-neo4j ${project.version} diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc index 32b0b70cb..3fac0560c 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chatclient.adoc @@ -528,43 +528,15 @@ This allows you to tailor the logged information to your specific needs. TIP: Be cautious about logging sensitive information in production environments. -== Chat Memory (Deprecated) - -IMPORTANT: Refer to the new xref:api/chat-memory.adoc[Chat Memory] documentation for the current features and capabilities. +== Chat Memory The interface `ChatMemory` represents a storage for chat conversation history. It provides methods to add messages to a conversation, retrieve messages from a conversation, and clear the conversation history. -There are currently four implementations: `CassandraChatMemory`, `Neo4jChatMemory`, and `JdbcChatMemory`, which provide storage for chat conversation history in-memory, persisted with `time-to-live` in Cassandra, and persisted without `time-to-live` in Neo4j and Jdbc, respectively. +There is currently one implementation: `MessageWindowChatMemory`. -=== CassandraChatMemory +`MessageWindowChatMemory` is a chat memory implementation that maintains a window of messages up to a specified maximum size (default: 20 messages). When the number of messages exceeds this limit, older messages are evicted, but system messages are preserved. If a new system message is added, all previous system messages are removed from memory. This ensures that the most recent context is always available for the conversation while keeping memory usage bounded. -To create a `CassandraChatMemory` with `time-to-live`: -[source,java] ----- -CassandraChatMemory.create(CassandraChatMemoryConfig.builder().withTimeToLive(Duration.ofDays(1)).build()); ----- +The `MessageWindowChatMemory` is backed by the `ChatMemoryRepository` abstraction which provides storage implementations for the chat conversation history. There are several implementations available, including the `InMemoryChatMemoryRepository`, `JdbcChatMemoryRepository`, `CassandraChatMemoryRepository` and `Neo4jChatMemoryRepository`. -IMPORTANT: Refer to the new xref:api/chat-memory.adoc#_cassandra_repository[Cassandra Chat Memory Repository] documentation for the current features and capabilities. - -=== Neo4jChatMemory - -The Neo4j chat memory supports the following configuration parameters: - -[cols="2,5,1",stripes=even] -|=== -|Property | Description | Default Value - -| `spring.ai.chat.memory.neo4j.messageLabel` | The label for the nodes that store messages | `Message` -| `spring.ai.chat.memory.neo4j.sessionLabel` | The label for the nodes that store conversation sessions | `Session` -| `spring.ai.chat.memory.neo4j.toolCallLabel` | The label for nodes that store tool calls, for example -in Assistant Messages | `ToolCall` -| `spring.ai.chat.memory.neo4j.metadataLabel` | The label for the node that store a message metadata | `Metadata` -| `spring.ai.chat.memory.neo4j.toolResponseLabel` | The label for the nodes that store tool responses | `ToolResponse` -| `spring.ai.chat.memory.neo4j.mediaLabel` | The label for the nodes that store the media associated to a message | `ToolResponse` - -|=== - -=== JdbcChatMemory - -IMPORTANT: Refer to the new xref:api/chat-memory.adoc#_jdbc_repository[JDBC Chat Memory Repository] documentation for the current features and capabilities. +This implementation is the default for conversation history management in Spring AI. For more details and usage examples, see the xref:api/chat-memory.adoc[Chat Memory] section. diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc index ac5d469ec..b275bd51f 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc @@ -55,6 +55,19 @@ If you were providing custom templates for the following advisors, you'll need t The Watson AI model was removed as it was based on the older text generation that is considered outdated as there is a new chat generation model available. Hopefully Watson will reappear in a future version of Spring AI +==== Chat Memory Repository Module and Autoconfiguration Renaming + +In 1.0.0-RC1, the chat memory modules, starters, and autoconfiguration classes for Cassandra, JDBC, and Neo4j have been renamed to include the `repository` suffix for clarity. This impacts artifact IDs, Java package names, and class names. For example: + +- Artifact IDs: +- `spring-ai-autoconfigure-model-chat-memory-jdbc` → `spring-ai-autoconfigure-model-chat-memory-repository-jdbc` +- `spring-ai-starter-model-chat-memory-jdbc` → `spring-ai-starter-model-chat-memory-repository-jdbc` +- Java packages now use `.repository.` (e.g., `org.springframework.ai.model.chat.memory.repository.jdbc.autoconfigure`). +- Main autoconfiguration classes are now named `JdbcChatMemoryRepositoryAutoConfiguration`, `CassandraChatMemoryRepositoryAutoConfiguration`, etc. + +**Migration Required:** +- Update your Maven/Gradle dependencies to use the new artifact IDs. +- Update any imports, class references, or configuration that used the old package or class names. [[upgrading-to-1-0-0-m8]] diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-cassandra/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml similarity index 89% rename from spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-cassandra/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml index 698974711..75588a699 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-cassandra/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml @@ -23,10 +23,10 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-starter-model-chat-memory-cassandra + spring-ai-starter-model-chat-memory-repository-cassandra jar - Spring AI Starter - Cassandra Chat Memory - Spring AI Cassandra Chat Memory Starter + Spring AI Starter - Cassandra Chat Memory Repository + Spring AI Cassandra Chat Memory Repository Starter https://github.com/spring-projects/spring-ai @@ -50,7 +50,7 @@ org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-cassandra + spring-ai-autoconfigure-model-chat-memory-repository-cassandra ${project.parent.version} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-jdbc/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml similarity index 90% rename from spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-jdbc/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml index 5f510a087..d4564f918 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-jdbc/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml @@ -23,10 +23,10 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-starter-model-chat-memory-jdbc + spring-ai-starter-model-chat-memory-repository-jdbc jar - Spring AI Starter - JDBC Chat Memory - Spring AI JDBC Chat Memory Starter + Spring AI Starter - JDBC Chat Memory Repository + Spring AI JDBC Chat Memory Repository Starter https://github.com/spring-projects/spring-ai @@ -50,7 +50,7 @@ org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-jdbc + spring-ai-autoconfigure-model-chat-memory-repository-jdbc ${project.parent.version} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-neo4j/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml similarity index 90% rename from spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-neo4j/pom.xml rename to spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml index 63256cbbc..172792dfa 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-neo4j/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml @@ -23,10 +23,10 @@ 1.0.0-SNAPSHOT ../../pom.xml - spring-ai-starter-model-chat-memory-neo4j + spring-ai-starter-model-chat-memory-repository-neo4j jar - Spring AI Starter - Neo4j Chat Memory - Spring AI Neo4j Chat Memory Starter + Spring AI Starter - Neo4j Chat Memory Repository + Spring AI Neo4j Chat Memory Repository Starter https://github.com/spring-projects/spring-ai @@ -50,7 +50,7 @@ org.springframework.ai - spring-ai-autoconfigure-model-chat-memory-neo4j + spring-ai-autoconfigure-model-chat-memory-repository-neo4j ${project.parent.version}