@@ -100,49 +100,45 @@ public Flow.Publisher<StreamingUnifiedChatCompletionResults.Results> executeStre
100100 final StringBuilder toolJsonArgs = new StringBuilder ();
101101 final StringBuilder assistantText = new StringBuilder ();
102102
103- var handler = ConverseStreamResponseHandler .builder ()
104- .onEventStream (es -> es .subscribe (event -> {
105- switch (event .sdkEventType ()) {
106- case MESSAGE_START :
107- break ;
108- case CONTENT_BLOCK_START :
109- var start = ((ContentBlockStartEvent ) event ).start ();
110- if (start .toolUse () != null ) {
111- toolUseIdHolder [0 ] = start .toolUse ().toolUseId ();
112- }
113- break ;
114- case CONTENT_BLOCK_DELTA :
115- var delta = ((ContentBlockDeltaEvent ) event ).delta ();
116- if (delta .toolUse () != null && delta .toolUse ().input () != null ) {
117- toolJsonArgs .append (delta .toolUse ().input ());
118- }
119- if (delta .text () != null ) {
120- assistantText .append (delta .text ());
121- }
122- break ;
123- case MESSAGE_STOP :
124- var stop = ((MessageStopEvent ) event ).stopReason ();
125- if ("tool_use" .equalsIgnoreCase (stop .name ())) {
126- toolRequested .complete (true );
127- } else {
128- toolRequested .complete (false );
129- }
130- break ;
131- default :
132- }
133- }))
134- .onResponse (r -> toolRequested .complete (true ))
135- .onError (toolRequested ::completeExceptionally );
103+ var handler = ConverseStreamResponseHandler .builder ().onEventStream (es -> es .subscribe (event -> {
104+ switch (event .sdkEventType ()) {
105+ case MESSAGE_START :
106+ break ;
107+ case CONTENT_BLOCK_START :
108+ var start = ((ContentBlockStartEvent ) event ).start ();
109+ if (start .toolUse () != null ) {
110+ toolUseIdHolder [0 ] = start .toolUse ().toolUseId ();
111+ }
112+ break ;
113+ case CONTENT_BLOCK_DELTA :
114+ var delta = ((ContentBlockDeltaEvent ) event ).delta ();
115+ if (delta .toolUse () != null && delta .toolUse ().input () != null ) {
116+ toolJsonArgs .append (delta .toolUse ().input ());
117+ }
118+ if (delta .text () != null ) {
119+ assistantText .append (delta .text ());
120+ }
121+ break ;
122+ case MESSAGE_STOP :
123+ var stop = ((MessageStopEvent ) event ).stopReason ();
124+ if ("tool_use" .equalsIgnoreCase (stop .name ())) {
125+ toolRequested .complete (true );
126+ } else {
127+ toolRequested .complete (false );
128+ }
129+ break ;
130+ default :
131+ }
132+ })).onResponse (r -> toolRequested .complete (true )).onError (toolRequested ::completeExceptionally );
136133
137- handler .subscriber (converseStreamOutput ->
138- getUnifiedConverseMessageList (requestEntity .messages ()).forEach (toolJsonArgs ::append ));
134+ handler .subscriber (converseStreamOutput -> getUnifiedConverseMessageList (requestEntity .messages ()).forEach (toolJsonArgs ::append ));
139135
140136 if (Boolean .TRUE .equals (toolRequested .get ())) {
141137 toolJsonArgs .toString ().contains ("args" );
142138 Map <String , Object > result = Map .of ("tool_use" , toolUseIdHolder [0 ]);
143- // var toolResultBlock = ContentBlock
144- // .fromToolResult(ToolResultContentBlock.builder()
145- // .document(DocumentBlock.builder().context(result).build()));
139+ // var toolResultBlock = ContentBlock
140+ // .fromToolResult(ToolResultContentBlock.builder()
141+ // .document(DocumentBlock.builder().context(result).build()));
146142
147143 }
148144 inferenceConfig (requestEntity ).ifPresent (converseStreamRequest ::inferenceConfig );
0 commit comments