Expected Behavior When using JdbcChatMemoryRepository it is expected that you will be able to continue a chat conversation keeping all the information that the User passed to the LLM model such as the text and also the Media resources (i.e.: for multimodal vision capable LLM models).
Current Behavior JdbcChatMemoryRepository, as it is designed in version 1.0.0, persists only the following information: - conversation_id (not an intrinsic field of the Message, passed in the saveAll method to group the messages pertaining to a given conversation) - content (the text part of the message) - type (the message type as a string representation of the Enum org.springframework.ai.chat.messages.MessageType) - timestamp (a database generated field, for ordered retrieval purpose)
This behaviour lack a way to persist the Media attached to a UserMessage.
Context With the use of JdbcChatMemoryRepository the LLM lose the capability to continue the conversation about a previously attached Media.
InMemoryChatMemory does not have any issues about keeping the Media attached to the Chat History.
I understand that the ChatMemory is not to be intended as a strategy to persist a Chat History but keeping Media attached to the UserMessage for the purpose of continuing a conversation about a given context (Media included) should be the standard behaviour of every ChatMemory implementation.
The only workaround I found is to write a custom implementation of ChatMemoryRepository capable to persist and retrieve the chat memory (at least for the UserMessage and AssistantMessage message types) serializing the content of the Media field if present.