Skip to content

Commit 3ede011

Browse files
committed
update chat agent ui
1 parent da84769 commit 3ede011

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<dependency>
3232
<groupId>com.javaaidev</groupId>
3333
<artifactId>chat-agent-ui</artifactId>
34-
<version>0.5.1</version>
34+
<version>0.6.0</version>
3535
</dependency>
3636

3737
<dependency>
Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
package com.javaaidev.agent;
22

3+
import com.javaaidev.chatagent.model.ChatRequest;
4+
import com.javaaidev.chatagent.model.ChatResponse;
5+
import com.javaaidev.chatagent.model.TextContentPart;
6+
import com.javaaidev.chatagent.model.ThreadAssistantMessage;
7+
import com.javaaidev.chatagent.model.ThreadUserMessage;
8+
import java.util.List;
9+
import java.util.stream.Stream;
310
import org.springframework.ai.chat.client.ChatClient;
11+
import org.springframework.ai.chat.messages.AssistantMessage;
12+
import org.springframework.ai.chat.messages.Message;
13+
import org.springframework.ai.chat.messages.UserMessage;
414
import org.springframework.web.bind.annotation.PostMapping;
515
import org.springframework.web.bind.annotation.RequestBody;
616
import org.springframework.web.bind.annotation.RequestMapping;
@@ -10,13 +20,6 @@
1020
@RequestMapping("/chat")
1121
public class ChatAgentController {
1222

13-
public record ChatRequest(String input) {
14-
15-
}
16-
17-
public record ChatResponse(String output) {
18-
19-
}
2023

2124
private static final String SYSTEM_TEXT = "You are a chef who is proficient in various cuisines. Please answer users' questions about cooking.";
2225
private final ChatClient chatClient;
@@ -27,10 +30,28 @@ public ChatAgentController(ChatClient.Builder builder) {
2730

2831
@PostMapping
2932
public ChatResponse chat(@RequestBody ChatRequest request) {
33+
var messages = request.messages().stream().flatMap(message -> {
34+
if (message instanceof ThreadUserMessage userMessage) {
35+
return userMessage.content().stream().map(part -> {
36+
if (part instanceof TextContentPart textContentPart) {
37+
return new UserMessage(textContentPart.text());
38+
}
39+
return null;
40+
});
41+
} else if (message instanceof ThreadAssistantMessage assistantMessage) {
42+
return assistantMessage.content().stream().map(part -> {
43+
if (part instanceof TextContentPart textContentPart) {
44+
return new AssistantMessage(textContentPart.text());
45+
}
46+
return null;
47+
});
48+
}
49+
return Stream.of();
50+
}).toList();
3051
var output = chatClient.prompt().system(SYSTEM_TEXT)
31-
.user(request.input())
52+
.messages(messages.toArray(new Message[0]))
3253
.call()
3354
.content();
34-
return new ChatResponse(output);
55+
return new ChatResponse(List.of(new TextContentPart(output)));
3556
}
3657
}

0 commit comments

Comments
 (0)