mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(communication): create prompts for summarizer, and optimize message structure
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package work.slhaf.partner.module.communication;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.w3c.dom.Element;
|
||||
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||
import work.slhaf.partner.core.cognition.ContextWorkspace;
|
||||
import work.slhaf.partner.framework.agent.model.pojo.Message;
|
||||
@@ -51,8 +52,8 @@ class CommunicationProducerTest {
|
||||
|
||||
List<Message> chatMessages = cognitionCapability.getChatMessages();
|
||||
assertEquals(2, chatMessages.size());
|
||||
assertEquals("[[USER]: user-1]: hello", chatMessages.get(0).getContent());
|
||||
assertEquals("[NOT_REPLIED]: not now", chatMessages.get(1).getContent());
|
||||
assertEquals("[[USER]: user-1]:\n\nhello", chatMessages.get(0).getContent());
|
||||
assertEquals("[[AGENT]: self]: [NOT_REPLIED]:\n\nnot now", chatMessages.get(1).getContent());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -68,7 +69,7 @@ class CommunicationProducerTest {
|
||||
);
|
||||
|
||||
List<Message> chatMessages = cognitionCapability.getChatMessages();
|
||||
assertEquals("normal reply", chatMessages.get(1).getContent());
|
||||
assertEquals("[[AGENT]: self]:\n\nnormal reply", chatMessages.get(1).getContent());
|
||||
}
|
||||
|
||||
private static final class StubCognitionCapability implements CognitionCapability {
|
||||
@@ -103,6 +104,11 @@ class CommunicationProducerTest {
|
||||
public void refreshRecentChatMessagesContext() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element messageNotesElement() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Lock getMessageLock() {
|
||||
return lock;
|
||||
|
||||
@@ -9,8 +9,8 @@ import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
||||
import work.slhaf.partner.core.memory.pojo.MemoryUnit;
|
||||
import work.slhaf.partner.framework.agent.model.pojo.Message;
|
||||
import work.slhaf.partner.framework.agent.support.Result;
|
||||
import work.slhaf.partner.module.communication.summarizer.MultiSummarizer;
|
||||
import work.slhaf.partner.module.communication.summarizer.SingleSummarizer;
|
||||
import work.slhaf.partner.module.communication.summarizer.MessageCompressor;
|
||||
import work.slhaf.partner.module.communication.summarizer.MessageSummarizer;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.nio.file.Path;
|
||||
@@ -42,13 +42,13 @@ class DialogRollingTest {
|
||||
String sessionId = "dialog-rolling-" + UUID.randomUUID();
|
||||
StubMemoryCapability memoryCapability = new StubMemoryCapability(sessionId);
|
||||
DialogRolling dialogRolling = new DialogRolling();
|
||||
MultiSummarizer multiSummarizer = Mockito.mock(MultiSummarizer.class);
|
||||
SingleSummarizer singleSummarizer = Mockito.mock(SingleSummarizer.class);
|
||||
MessageSummarizer messageSummarizer = Mockito.mock(MessageSummarizer.class);
|
||||
MessageCompressor messageCompressor = Mockito.mock(MessageCompressor.class);
|
||||
setField(dialogRolling, "memoryCapability", memoryCapability);
|
||||
setField(dialogRolling, "multiSummarizer", multiSummarizer);
|
||||
setField(dialogRolling, "singleSummarizer", singleSummarizer);
|
||||
setField(dialogRolling, "messageSummarizer", messageSummarizer);
|
||||
setField(dialogRolling, "messageCompressor", messageCompressor);
|
||||
|
||||
when(multiSummarizer.execute(Mockito.any())).thenReturn(Result.success("new-summary"));
|
||||
when(messageSummarizer.execute(Mockito.any())).thenReturn(Result.success("new-summary"));
|
||||
|
||||
MemoryUnit existingUnit = new MemoryUnit(sessionId);
|
||||
existingUnit.getConversationMessages().addAll(List.of(
|
||||
@@ -83,13 +83,13 @@ class DialogRollingTest {
|
||||
String sessionId = "dialog-rolling-" + UUID.randomUUID();
|
||||
StubMemoryCapability memoryCapability = new StubMemoryCapability(sessionId);
|
||||
DialogRolling dialogRolling = new DialogRolling();
|
||||
MultiSummarizer multiSummarizer = Mockito.mock(MultiSummarizer.class);
|
||||
SingleSummarizer singleSummarizer = Mockito.mock(SingleSummarizer.class);
|
||||
MessageSummarizer messageSummarizer = Mockito.mock(MessageSummarizer.class);
|
||||
MessageCompressor messageCompressor = Mockito.mock(MessageCompressor.class);
|
||||
setField(dialogRolling, "memoryCapability", memoryCapability);
|
||||
setField(dialogRolling, "multiSummarizer", multiSummarizer);
|
||||
setField(dialogRolling, "singleSummarizer", singleSummarizer);
|
||||
setField(dialogRolling, "messageSummarizer", messageSummarizer);
|
||||
setField(dialogRolling, "messageCompressor", messageCompressor);
|
||||
|
||||
when(multiSummarizer.execute(Mockito.any())).thenReturn(Result.success("fresh-summary"));
|
||||
when(messageSummarizer.execute(Mockito.any())).thenReturn(Result.success("fresh-summary"));
|
||||
|
||||
RollingResult rollingResult = dialogRolling.buildRollingResult(List.of(
|
||||
message(Message.Character.USER, "first"),
|
||||
@@ -138,13 +138,13 @@ class DialogRollingTest {
|
||||
String sessionId = "dialog-rolling-" + UUID.randomUUID();
|
||||
StubMemoryCapability memoryCapability = new StubMemoryCapability(sessionId);
|
||||
DialogRolling dialogRolling = new DialogRolling();
|
||||
MultiSummarizer multiSummarizer = Mockito.mock(MultiSummarizer.class);
|
||||
SingleSummarizer singleSummarizer = Mockito.mock(SingleSummarizer.class);
|
||||
MessageSummarizer messageSummarizer = Mockito.mock(MessageSummarizer.class);
|
||||
MessageCompressor messageCompressor = Mockito.mock(MessageCompressor.class);
|
||||
setField(dialogRolling, "memoryCapability", memoryCapability);
|
||||
setField(dialogRolling, "multiSummarizer", multiSummarizer);
|
||||
setField(dialogRolling, "singleSummarizer", singleSummarizer);
|
||||
setField(dialogRolling, "messageSummarizer", messageSummarizer);
|
||||
setField(dialogRolling, "messageCompressor", messageCompressor);
|
||||
|
||||
when(multiSummarizer.execute(Mockito.any())).thenReturn(Result.success(" "));
|
||||
when(messageSummarizer.execute(Mockito.any())).thenReturn(Result.success(" "));
|
||||
|
||||
RollingResult rollingResult = dialogRolling.buildRollingResult(List.of(
|
||||
message(Message.Character.USER, "u1"),
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.w3c.dom.Element;
|
||||
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||
import work.slhaf.partner.core.memory.MemoryCapability;
|
||||
import work.slhaf.partner.core.memory.pojo.MemorySlice;
|
||||
@@ -93,6 +94,11 @@ class MemoryRuntimeTest {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Element messageNotesElement() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Lock getMessageLock() {
|
||||
return lock;
|
||||
|
||||
Reference in New Issue
Block a user