Skip to content

Commit 9feb878

Browse files
committed
code refactoring
1 parent 0646459 commit 9feb878

File tree

4 files changed

+31
-14
lines changed

4 files changed

+31
-14
lines changed

chat-agent-ui/src/main/java/com/javaaidev/chatagent/model/ChatRequest.java renamed to chat-agent-ui/src/main/java/com/javaaidev/chatagent/model/ChatAgentRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import java.util.List;
44

5-
public record ChatRequest(List<ThreadMessage> messages) {
5+
public record ChatAgentRequest(List<ThreadMessage> messages) {
66

77
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.javaaidev.chatagent.model;
2+
3+
import java.util.List;
4+
5+
public record ChatAgentResponse(List<ThreadAssistantContentPart> content) {
6+
7+
}

chat-agent-ui/src/main/java/com/javaaidev/chatagent/model/ChatResponse.java

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,67 @@
11
package com.javaaidev.chatagent.springai;
22

3-
import com.javaaidev.chatagent.model.ChatRequest;
3+
import com.javaaidev.chatagent.model.ChatAgentRequest;
4+
import com.javaaidev.chatagent.model.ChatAgentResponse;
45
import com.javaaidev.chatagent.model.TextContentPart;
56
import com.javaaidev.chatagent.model.ThreadAssistantContentPart;
67
import com.javaaidev.chatagent.model.ThreadAssistantMessage;
78
import com.javaaidev.chatagent.model.ThreadUserMessage;
89
import java.util.ArrayList;
910
import java.util.List;
11+
import java.util.Objects;
1012
import java.util.stream.Stream;
1113
import org.springframework.ai.chat.messages.AssistantMessage;
1214
import org.springframework.ai.chat.messages.Message;
1315
import org.springframework.ai.chat.messages.UserMessage;
1416
import org.springframework.ai.chat.model.ChatResponse;
1517
import org.springframework.ai.chat.model.Generation;
1618

19+
/**
20+
* Convert models between chat agent and Spring AI
21+
*/
1722
public class ModelAdapter {
1823

1924
private ModelAdapter() {
2025
}
2126

22-
public static List<Message> fromRequest(ChatRequest request) {
27+
/**
28+
* Convert a {@linkplain ChatAgentRequest} to a list of Spring AI {@linkplain Message}
29+
*
30+
* @param request {@linkplain ChatAgentRequest} of chat agent
31+
* @return A list of Spring AI {@linkplain Message}
32+
*/
33+
public static List<Message> fromRequest(ChatAgentRequest request) {
2334
return request.messages().stream().flatMap(message -> {
2435
if (message instanceof ThreadUserMessage userMessage) {
2536
return userMessage.content().stream().map(part -> {
2637
if (part instanceof TextContentPart textContentPart) {
2738
return new UserMessage(textContentPart.text());
2839
}
2940
return null;
30-
});
41+
}).filter(Objects::nonNull);
3142
} else if (message instanceof ThreadAssistantMessage assistantMessage) {
3243
return assistantMessage.content().stream().map(part -> {
3344
if (part instanceof TextContentPart textContentPart) {
3445
return new AssistantMessage(textContentPart.text());
3546
}
3647
return null;
37-
});
48+
}).filter(Objects::nonNull);
3849
}
3950
return Stream.<Message>of();
4051
}).toList();
4152
}
4253

43-
public com.javaaidev.chatagent.model.ChatResponse toResponse(ChatResponse chatResponse) {
54+
/**
55+
* Convert a Spring AI {@linkplain ChatResponse} to {@linkplain ChatAgentResponse}
56+
*
57+
* @param chatResponse Spring AI {@linkplain ChatResponse}
58+
* @return {@linkplain ChatAgentResponse} of chat agent
59+
*/
60+
public static ChatAgentResponse toResponse(ChatResponse chatResponse) {
4461
var content = new ArrayList<ThreadAssistantContentPart>();
4562
for (Generation generation : chatResponse.getResults()) {
4663
content.add(new TextContentPart(generation.getOutput().getText()));
4764
}
48-
return new com.javaaidev.chatagent.model.ChatResponse(content);
65+
return new ChatAgentResponse(content);
4966
}
5067
}

0 commit comments

Comments
 (0)