@@ -274,6 +274,11 @@ protected String callAssistant(String agent, GXProperties properties, ArrayList<
274274 return callAgent (agent , properties , messages , result );
275275 }
276276
277+ protected ChatResult chatAgent (String agent , GXProperties properties , ArrayList <OpenAIResponse .Message > messages , CallResult result ) {
278+ callAgent (agent , true , properties , messages , result );
279+ return new ChatResult (this , agent , properties , messages , result , client );
280+ }
281+
277282 protected String callAgent (String agent , GXProperties properties , ArrayList <OpenAIResponse .Message > messages , CallResult result ) {
278283 return callAgent (agent , false , properties , messages , result );
279284 }
@@ -299,12 +304,12 @@ protected String callAgent(String agent, boolean stream, GXProperties properties
299304 }
300305 }
301306 } else if (client .getStatusCode () == 200 ) {
302- return readChunk ( agent , properties , messages , result ) ;
307+ return "" ;
303308 }
304309 return "" ;
305310 }
306311
307- private String processNotChunkedResponse (String agent , boolean stream , GXProperties properties , ArrayList <OpenAIResponse .Message > messages , CallResult result , ArrayList <OpenAIResponse .ToolCall > toolCalls ) {
312+ public String processNotChunkedResponse (String agent , boolean stream , GXProperties properties , ArrayList <OpenAIResponse .Message > messages , CallResult result , ArrayList <OpenAIResponse .ToolCall > toolCalls ) {
308313 for (OpenAIResponse .ToolCall tollCall : toolCalls ) {
309314 processToolCall (tollCall , messages );
310315 }
@@ -326,36 +331,4 @@ private void processToolCall(OpenAIResponse.ToolCall toolCall, ArrayList<OpenAIR
326331 toolCallMessage .setToolCallId (toolCall .getId ());
327332 messages .add (toolCallMessage );
328333 }
329-
330- protected String readChunk () {
331- return readChunk (null , null , null , null );
332- }
333-
334- protected String readChunk (String agent , GXProperties properties , ArrayList <OpenAIResponse .Message > messages , CallResult result ) {
335- String data = client .readChunk ();
336- if (data .isEmpty ())
337- return "" ;
338- int index = data .indexOf ("data:" ) + "data:" .length ();
339- String chunkJson = data .substring (index ).trim ();
340- try {
341- JSONObject jsonResponse = new JSONObject (chunkJson );
342- OpenAIResponse chunkResponse = new ObjectMapper ().readValue (jsonResponse .toString (), OpenAIResponse .class );
343- OpenAIResponse .Choice choise = chunkResponse .getChoices ().get (0 );
344- if (choise .getFinishReason () != null && choise .getFinishReason ().equals ("tool_calls" ) && agent != null ) {
345- messages .add (choise .getMessage ());
346- return processNotChunkedResponse (agent , true , properties , messages , result , choise .getMessage ().getToolCalls ());
347- }
348- String chunkString = choise .getDelta ().getContent ();
349- if (chunkString == null )
350- return "" ;
351- return chunkString ;
352- }
353- catch (Exception e ) {
354- return "" ;
355- }
356- }
357-
358- protected boolean isStreamEOF () {
359- return client .getEof ();
360- }
361334}
0 commit comments