@@ -357,19 +357,16 @@ private Mono<ChatMessages> internalChatMessageContentsAsync(
357357 // If we don't want to attempt to invoke any functions
358358 // Or if we are auto-invoking, but we somehow end up with other than 1 choice even though only 1 was requested
359359 if (autoInvokeAttempts == 0 || responseMessages .size () != 1 ) {
360- return getChatMessageContentsAsync (completions )
361- .flatMap (m -> {
362- return Mono .just (messages .addChatMessage (m ));
363- });
360+ List <OpenAIChatMessageContent <?>> chatMessageContents = getChatMessageContentsAsync (completions );
361+ return Mono .just (messages .addChatMessage (chatMessageContents ));
364362 }
365363 // Or if there are no tool calls to be done
366364 ChatResponseMessage response = responseMessages .get (0 );
367365 List <ChatCompletionsToolCall > toolCalls = response .getToolCalls ();
368366 if (toolCalls == null || toolCalls .isEmpty ()) {
369- return getChatMessageContentsAsync (completions )
370- .flatMap (m -> {
371- return Mono .just (messages .addChatMessage (m ));
372- });
367+ List <OpenAIChatMessageContent <?>> chatMessageContents = getChatMessageContentsAsync (
368+ completions );
369+ return Mono .just (messages .addChatMessage (chatMessageContents ));
373370 }
374371
375372 ChatRequestAssistantMessage requestMessage = new ChatRequestAssistantMessage (
@@ -592,7 +589,7 @@ private OpenAIFunctionToolCall extractOpenAIFunctionToolCall(
592589 arguments );
593590 }
594591
595- private Mono < List <OpenAIChatMessageContent <?> >> getChatMessageContentsAsync (
592+ private List <OpenAIChatMessageContent <?>> getChatMessageContentsAsync (
596593 ChatCompletions completions ) {
597594 FunctionResultMetadata <CompletionsUsage > completionMetadata = FunctionResultMetadata .build (
598595 completions .getId (),
@@ -619,14 +616,15 @@ private Mono<List<OpenAIChatMessageContent<?>>> getChatMessageContentsAsync(
619616 null ,
620617 completionMetadata ,
621618 formOpenAiToolCalls (response ));
622- } catch (Exception e ) {
619+ } catch (SKCheckedException e ) {
620+ LOGGER .warn ("Failed to form chat message content" , e );
623621 return null ;
624622 }
625623 })
626624 .filter (Objects ::nonNull )
627625 .collect (Collectors .toList ());
628626
629- return Mono . just ( chatMessageContent ) ;
627+ return chatMessageContent ;
630628 }
631629
632630 private List <ChatMessageContent <?>> toOpenAIChatMessageContent (
@@ -936,7 +934,7 @@ private static boolean hasToolCallBeenExecuted(List<ChatRequestMessage> chatRequ
936934 }
937935
938936 private static List <ChatRequestMessage > getChatRequestMessages (
939- List <? extends ChatMessageContent > messages ) {
937+ List <? extends ChatMessageContent <?> > messages ) {
940938 if (messages == null || messages .isEmpty ()) {
941939 return new ArrayList <>();
942940 }
0 commit comments