Skip to content

Commit 4b11899

Browse files
committed
feat: process remake and write dialect
Signed-off-by: potato <[email protected]>
1 parent 5b74843 commit 4b11899

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/MysqlChatMemoryRepositoryDialect.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,9 @@ public String getDeleteMessagesSql() {
4444
return "DELETE FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ?";
4545
}
4646

47+
@Override
48+
public String getDeleteMessageSql() {
49+
return "DELETE FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ? AND content = ? AND type = ?";
50+
}
51+
4752
}

spring-ai-model/src/main/java/org/springframework/ai/chat/memory/MessageWindowChatMemory.java

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,16 @@ public void clear(String conversationId) {
8383
private MessageChanges process(List<Message> memoryMessages, List<Message> newMessages) {
8484
Set<Message> originalMessageSet = new LinkedHashSet<>(memoryMessages);
8585
List<Message> uniqueNewMessages = newMessages.stream()
86-
.filter(msg -> !originalMessageSet.contains(msg))
87-
.toList();
88-
boolean hasNewSystemMessage = uniqueNewMessages.stream()
89-
.anyMatch(SystemMessage.class::isInstance);
86+
.filter(msg -> !originalMessageSet.contains(msg))
87+
.toList();
88+
boolean hasNewSystemMessage = uniqueNewMessages.stream().anyMatch(SystemMessage.class::isInstance);
9089

9190
List<Message> finalMessages = new ArrayList<>();
92-
if(hasNewSystemMessage) {
93-
memoryMessages.stream()
94-
.filter(msg -> !(msg instanceof SystemMessage))
95-
.forEach(finalMessages::add);
91+
if (hasNewSystemMessage) {
92+
memoryMessages.stream().filter(msg -> !(msg instanceof SystemMessage)).forEach(finalMessages::add);
9693
finalMessages.addAll(uniqueNewMessages);
97-
} else {
94+
}
95+
else {
9896
finalMessages.addAll(memoryMessages);
9997
finalMessages.addAll(uniqueNewMessages);
10098
}
@@ -106,7 +104,8 @@ private MessageChanges process(List<Message> memoryMessages, List<Message> newMe
106104
for (Message message : finalMessages) {
107105
if (message instanceof SystemMessage || removed >= messagesToRemove) {
108106
trimmedMessages.add(message);
109-
} else {
107+
}
108+
else {
110109
removed++;
111110
}
112111
}
@@ -115,25 +114,24 @@ private MessageChanges process(List<Message> memoryMessages, List<Message> newMe
115114

116115
Set<Message> finalMessageSet = new LinkedHashSet<>(finalMessages);
117116

118-
List<Message> toDelete = originalMessageSet.stream()
119-
.filter(m -> !finalMessageSet.contains(m))
120-
.toList();
117+
List<Message> toDelete = originalMessageSet.stream().filter(m -> !finalMessageSet.contains(m)).toList();
121118

122-
List<Message> toAdd = finalMessageSet.stream()
123-
.filter(m -> !originalMessageSet.contains(m))
124-
.toList();
119+
List<Message> toAdd = finalMessageSet.stream().filter(m -> !originalMessageSet.contains(m)).toList();
125120

126121
return new MessageChanges(toDelete, toAdd);
127122
}
128123

129124
private static class MessageChanges {
125+
130126
final List<Message> toDelete;
127+
131128
final List<Message> toAdd;
132129

133130
MessageChanges(List<Message> toDelete, List<Message> toAdd) {
134131
this.toDelete = toDelete;
135132
this.toAdd = toAdd;
136133
}
134+
137135
}
138136

139137
public static Builder builder() {

0 commit comments

Comments
 (0)