@@ -100,49 +100,45 @@ public Flow.Publisher<StreamingUnifiedChatCompletionResults.Results> executeStre
100
100
final StringBuilder toolJsonArgs = new StringBuilder ();
101
101
final StringBuilder assistantText = new StringBuilder ();
102
102
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 );
136
133
137
- handler .subscriber (converseStreamOutput ->
138
- getUnifiedConverseMessageList (requestEntity .messages ()).forEach (toolJsonArgs ::append ));
134
+ handler .subscriber (converseStreamOutput -> getUnifiedConverseMessageList (requestEntity .messages ()).forEach (toolJsonArgs ::append ));
139
135
140
136
if (Boolean .TRUE .equals (toolRequested .get ())) {
141
137
toolJsonArgs .toString ().contains ("args" );
142
138
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()));
146
142
147
143
}
148
144
inferenceConfig (requestEntity ).ifPresent (converseStreamRequest ::inferenceConfig );
0 commit comments