Skip to content

Conversation

@markpollack
Copy link
Member

@markpollack markpollack commented Dec 10, 2025

Summary

  • Add RedisChatMemoryRepository implementing ChatMemoryRepository interface
  • Add AdvancedChatMemoryRepository for extended query capabilities (search by metadata, time ranges, pagination)
  • Add RedisChatMemoryConfig for flexible configuration options
  • Add Spring Boot auto-configuration for Redis chat memory
  • Include comprehensive test coverage

Details

This PR adds Redis-based chat memory persistence using Redis Stack's JSON and Search capabilities. The implementation provides:

  • Full ChatMemoryRepository interface support: Store, retrieve, and manage conversation messages
  • Advanced querying: Search messages by metadata fields, time ranges, and content
  • Flexible configuration: TTL support, custom key prefixes, index naming, metadata field indexing
  • Schema initialization: Automatic Redis index creation with configurable schema

Modules Added

  • memory/repository/spring-ai-model-chat-memory-repository-redis/ - Core implementation
  • auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-redis/ - Auto-configuration

Test Plan

  • Unit tests for configuration classes
  • Integration tests with Redis Stack (Testcontainers)
  • Tests for message type handling (User, Assistant, System, Tool)
  • Tests for media content support
  • Tests for error handling and edge cases
  • Tests for advanced query capabilities

Related

- Add RedisChatMemoryRepository implementing ChatMemoryRepository
- Add AdvancedChatMemoryRepository for extended query capabilities
- Add RedisChatMemoryConfig for flexible configuration
- Add Spring Boot auto-configuration for Redis chat memory
- Include comprehensive test coverage

Signed-off-by: Mark Pollack <mark.pollack@broadcom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants