File tree Expand file tree Collapse file tree 4 files changed +21
-15
lines changed
src/main/java/com/javaaidev/agent Expand file tree Collapse file tree 4 files changed +21
-15
lines changed Original file line number Diff line number Diff line change 17
17
<properties >
18
18
<java .version>21</java .version>
19
19
<spring-ai .version>1.0.0-M5</spring-ai .version>
20
- <chat-agent-ui .version>0.9 .0</chat-agent-ui .version>
20
+ <chat-agent-ui .version>0.10 .0</chat-agent-ui .version>
21
21
</properties >
22
22
<dependencies >
23
23
<dependency >
Original file line number Diff line number Diff line change @@ -11,8 +11,7 @@ public abstract class AbstractChatAgentController {
11
11
You are a chef who is proficient in various cuisines. Please answer users' questions about cooking.
12
12
For other unrelated inputs, simply tell the user that you don't know.
13
13
""" ;
14
-
15
-
14
+
16
15
protected List <Message > chatRequestToMessages (ChatAgentRequest request ) {
17
16
return ModelAdapter .fromRequest (request );
18
17
}
Original file line number Diff line number Diff line change 1
1
package com .javaaidev .agent ;
2
2
3
3
import com .javaaidev .chatagent .model .ChatAgentRequest ;
4
+ import com .javaaidev .chatagent .model .ChatAgentResponse ;
5
+ import com .javaaidev .chatagent .springai .ModelAdapter ;
4
6
import org .springframework .ai .chat .client .ChatClient ;
5
7
import org .springframework .ai .chat .messages .Message ;
6
8
import org .springframework .http .codec .ServerSentEvent ;
@@ -21,17 +23,18 @@ public ChatAgentController(ChatClient.Builder builder) {
21
23
}
22
24
23
25
@ PostMapping
24
- public Flux <ServerSentEvent <String >> chat (@ RequestBody ChatAgentRequest request ) {
26
+ public Flux <ServerSentEvent <ChatAgentResponse >> chat (@ RequestBody ChatAgentRequest request ) {
25
27
if (request == null ) {
26
28
return Flux .empty ();
27
29
}
28
30
var messages = chatRequestToMessages (request );
29
- var output = chatClient .prompt ().system (SYSTEM_TEXT )
31
+ var chatResponse = chatClient .prompt ().system (SYSTEM_TEXT )
30
32
.messages (messages .toArray (new Message [0 ]))
31
33
.call ()
32
- .content ();
33
- return Flux .just (ServerSentEvent .<String >builder ()
34
- .data ("#" + output + "#" )
35
- .build ());
34
+ .chatResponse ();
35
+ if (chatResponse == null ) {
36
+ return Flux .empty ();
37
+ }
38
+ return ModelAdapter .toStreamingResponse (Flux .just (chatResponse ));
36
39
}
37
40
}
Original file line number Diff line number Diff line change 1
1
package com .javaaidev .agent ;
2
2
3
3
import com .javaaidev .chatagent .model .ChatAgentRequest ;
4
+ import com .javaaidev .chatagent .model .ChatAgentResponse ;
5
+ import com .javaaidev .chatagent .springai .ModelAdapter ;
4
6
import org .springframework .ai .chat .client .ChatClient ;
5
7
import org .springframework .ai .chat .messages .Message ;
6
8
import org .springframework .http .MediaType ;
@@ -22,12 +24,14 @@ public ChatAgentStreamingController(ChatClient.Builder builder) {
22
24
}
23
25
24
26
@ PostMapping (produces = MediaType .TEXT_EVENT_STREAM_VALUE )
25
- public Flux <ServerSentEvent <String >> chatStreaming (@ RequestBody ChatAgentRequest request ) {
27
+ public Flux <ServerSentEvent <ChatAgentResponse >> chatStreaming (
28
+ @ RequestBody ChatAgentRequest request ) {
26
29
var messages = chatRequestToMessages (request );
27
- return chatClient .prompt ().system (SYSTEM_TEXT ).messages (messages .toArray (new Message [0 ]))
28
- .stream ().content ()
29
- .map (output -> ServerSentEvent .<String >builder ()
30
- .data ("#" + output + "#" )
31
- .build ());
30
+ return ModelAdapter .toStreamingResponse (
31
+ chatClient .prompt ()
32
+ .system (SYSTEM_TEXT )
33
+ .messages (messages .toArray (new Message [0 ]))
34
+ .stream ()
35
+ .chatResponse ());
32
36
}
33
37
}
You can’t perform that action at this time.
0 commit comments