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 1717 <properties >
1818 <java .version>21</java .version>
1919 <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>
2121 </properties >
2222 <dependencies >
2323 <dependency >
Original file line number Diff line number Diff line change @@ -11,8 +11,7 @@ public abstract class AbstractChatAgentController {
1111 You are a chef who is proficient in various cuisines. Please answer users' questions about cooking.
1212 For other unrelated inputs, simply tell the user that you don't know.
1313 """ ;
14-
15-
14+
1615 protected List <Message > chatRequestToMessages (ChatAgentRequest request ) {
1716 return ModelAdapter .fromRequest (request );
1817 }
Original file line number Diff line number Diff line change 11package com .javaaidev .agent ;
22
33import com .javaaidev .chatagent .model .ChatAgentRequest ;
4+ import com .javaaidev .chatagent .model .ChatAgentResponse ;
5+ import com .javaaidev .chatagent .springai .ModelAdapter ;
46import org .springframework .ai .chat .client .ChatClient ;
57import org .springframework .ai .chat .messages .Message ;
68import org .springframework .http .codec .ServerSentEvent ;
@@ -21,17 +23,18 @@ public ChatAgentController(ChatClient.Builder builder) {
2123 }
2224
2325 @ PostMapping
24- public Flux <ServerSentEvent <String >> chat (@ RequestBody ChatAgentRequest request ) {
26+ public Flux <ServerSentEvent <ChatAgentResponse >> chat (@ RequestBody ChatAgentRequest request ) {
2527 if (request == null ) {
2628 return Flux .empty ();
2729 }
2830 var messages = chatRequestToMessages (request );
29- var output = chatClient .prompt ().system (SYSTEM_TEXT )
31+ var chatResponse = chatClient .prompt ().system (SYSTEM_TEXT )
3032 .messages (messages .toArray (new Message [0 ]))
3133 .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 ));
3639 }
3740}
Original file line number Diff line number Diff line change 11package com .javaaidev .agent ;
22
33import com .javaaidev .chatagent .model .ChatAgentRequest ;
4+ import com .javaaidev .chatagent .model .ChatAgentResponse ;
5+ import com .javaaidev .chatagent .springai .ModelAdapter ;
46import org .springframework .ai .chat .client .ChatClient ;
57import org .springframework .ai .chat .messages .Message ;
68import org .springframework .http .MediaType ;
@@ -22,12 +24,14 @@ public ChatAgentStreamingController(ChatClient.Builder builder) {
2224 }
2325
2426 @ 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 ) {
2629 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 ());
3236 }
3337}
You can’t perform that action at this time.
0 commit comments