From 66d766c88ec5d1ab4715fd9f2c22ce42b459d957 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 02 四月 2026 18:32:20 +0800
Subject: [PATCH] #
---
rsf-server/src/test/java/com/vincent/rsf/server/AI/service/impl/chat/AiPromptMessageBuilderTest.java | 61 ++++++++++++++++--------------
1 files changed, 32 insertions(+), 29 deletions(-)
diff --git a/rsf-server/src/test/java/com/vincent/rsf/server/AI/service/impl/chat/AiPromptMessageBuilderTest.java b/rsf-server/src/test/java/com/vincent/rsf/server/AI/service/impl/chat/AiPromptMessageBuilderTest.java
index 41cd3c0..ee0b87b 100644
--- a/rsf-server/src/test/java/com/vincent/rsf/server/AI/service/impl/chat/AiPromptMessageBuilderTest.java
+++ b/rsf-server/src/test/java/com/vincent/rsf/server/AI/service/impl/chat/AiPromptMessageBuilderTest.java
@@ -4,59 +4,62 @@
import com.vincent.rsf.server.ai.dto.AiChatMessageDto;
import com.vincent.rsf.server.ai.entity.AiPrompt;
import org.junit.jupiter.api.Test;
+import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import java.util.List;
-import java.util.Map;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.assertj.core.api.Assertions.assertThat;
class AiPromptMessageBuilderTest {
- private final AiPromptMessageBuilder builder = new AiPromptMessageBuilder();
+ private final AiPromptMessageBuilder aiPromptMessageBuilder = new AiPromptMessageBuilder();
@Test
- void shouldBuildPromptMessagesInExpectedOrderAndRenderLastUserPrompt() {
+ void shouldMergeAllSystemContextIntoSingleLeadingSystemMessage() {
AiChatMemoryDto memory = AiChatMemoryDto.builder()
- .memorySummary("summary")
- .memoryFacts("facts")
+ .memorySummary("杩欐槸鎽樿")
+ .memoryFacts("杩欐槸浜嬪疄")
.build();
AiPrompt prompt = new AiPrompt()
- .setSystemPrompt("system")
- .setUserPromptTemplate("鐢ㄦ埛闂: {{input}} | 浠撳簱: {{warehouse}}");
- List<AiChatMessageDto> messages = List.of(
- message("user", "old question"),
- message("assistant", "old answer"),
- message("user", "latest question")
+ .setSystemPrompt("浣犳槸鍔╂墜")
+ .setUserPromptTemplate("璇峰洖绛旓細{{input}}");
+
+ List<Message> messages = aiPromptMessageBuilder.buildPromptMessages(
+ memory,
+ List.of(
+ message("user", "绗竴闂�"),
+ message("assistant", "绗竴绛�"),
+ message("user", "绗簩闂�")
+ ),
+ prompt,
+ null
);
- List<Message> built = builder.buildPromptMessages(memory, messages, prompt, Map.of("warehouse", "WH1"));
-
- assertEquals(6, built.size());
- assertInstanceOf(SystemMessage.class, built.get(0));
- assertEquals("system", built.get(0).getText());
- assertEquals("鍘嗗彶鎽樿:\nsummary", built.get(1).getText());
- assertEquals("鍏抽敭浜嬪疄:\nfacts", built.get(2).getText());
- assertInstanceOf(UserMessage.class, built.get(3));
- assertEquals("old question", built.get(3).getText());
- assertEquals("old answer", built.get(4).getText());
- assertInstanceOf(UserMessage.class, built.get(5));
- assertEquals("鐢ㄦ埛闂: latest question | 浠撳簱: WH1", built.get(5).getText());
+ assertThat(messages).hasSize(4);
+ assertThat(messages.get(0)).isInstanceOf(SystemMessage.class);
+ assertThat(messages.get(1)).isInstanceOf(UserMessage.class);
+ assertThat(messages.get(2)).isInstanceOf(AssistantMessage.class);
+ assertThat(messages.get(3)).isInstanceOf(UserMessage.class);
+ assertThat(((SystemMessage) messages.get(0)).getText())
+ .contains("浣犳槸鍔╂墜")
+ .contains("鍘嗗彶鎽樿:\n杩欐槸鎽樿")
+ .contains("鍏抽敭浜嬪疄:\n杩欐槸浜嬪疄");
+ assertThat(((UserMessage) messages.get(3)).getText()).isEqualTo("璇峰洖绛旓細绗簩闂�");
}
@Test
void shouldMergePersistedAndMemoryMessages() {
- List<AiChatMessageDto> merged = builder.mergeMessages(
+ List<AiChatMessageDto> merged = aiPromptMessageBuilder.mergeMessages(
List.of(message("user", "persisted")),
List.of(message("assistant", "memory"))
);
- assertEquals(2, merged.size());
- assertEquals("persisted", merged.get(0).getContent());
- assertEquals("memory", merged.get(1).getContent());
+ assertThat(merged).hasSize(2);
+ assertThat(merged.get(0).getContent()).isEqualTo("persisted");
+ assertThat(merged.get(1).getContent()).isEqualTo("memory");
}
private AiChatMessageDto message(String role, String content) {
--
Gitblit v1.9.1