Skip to content

Commit b4a6202

Browse files
committed
重构: 需要进一步抽象出一个Conversation的接口
1 parent cfd9445 commit b4a6202

File tree

3 files changed

+2
-36
lines changed

3 files changed

+2
-36
lines changed

src/main/java/com/xiaozhi/dialogue/llm/memory/ChatMemoryStore.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
/**
1212
* 聊天记忆接口
13+
* TODO 需要进一步抽象出一个Conversation的接口
1314
* 负责管理聊天历史记录
1415
*/
1516
public interface ChatMemoryStore {

src/main/java/com/xiaozhi/dialogue/llm/memory/DatabaseChatMemory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class DatabaseChatMemory {
3333
private TtsServiceFactory ttsService;
3434

3535
public void addMessage(String deviceId, String sessionId, String sender, String content, Integer roleId, String messageType, String audioPath) {
36-
// TODO 异步虚拟线程处理持久化。
36+
// 异步虚拟线程处理持久化。
3737
Thread.startVirtualThread(() -> {
3838
try {
3939
SysMessage message = new SysMessage();

src/main/java/com/xiaozhi/dialogue/llm/memory/MessageWindowChatMemory.java

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -50,41 +50,6 @@ public void clearMessages(String deviceId) {
5050
systemMessageCache.keySet().removeIf(key -> key.startsWith(deviceId + ":"));
5151
}
5252

53-
// todo 在get时处理缩容。
54-
private List<Message> process(List<Message> memoryMessages, List<Message> newMessages) {
55-
List<Message> processedMessages = new ArrayList<>();
56-
57-
Set<Message> memoryMessagesSet = new HashSet<>(memoryMessages);
58-
boolean hasNewSystemMessage = newMessages.stream()
59-
.filter(SystemMessage.class::isInstance)
60-
.anyMatch(message -> !memoryMessagesSet.contains(message));
61-
62-
memoryMessages.stream()
63-
.filter(message -> !(hasNewSystemMessage && message instanceof SystemMessage))
64-
.forEach(processedMessages::add);
65-
66-
processedMessages.addAll(newMessages);
67-
68-
if (processedMessages.size() <= this.maxMessages) {
69-
return processedMessages;
70-
}
71-
72-
int messagesToRemove = processedMessages.size() - this.maxMessages;
73-
74-
List<Message> trimmedMessages = new ArrayList<>();
75-
int removed = 0;
76-
for (Message message : processedMessages) {
77-
if (message instanceof SystemMessage || removed >= messagesToRemove) {
78-
trimmedMessages.add(message);
79-
}
80-
else {
81-
removed++;
82-
}
83-
}
84-
85-
return trimmedMessages;
86-
}
87-
8853
@Override
8954
public String getSystemMessage(String deviceId, Integer roleId) {
9055

0 commit comments

Comments
 (0)