Skip to content

Commit 8d8d5df

Browse files
author
David Grieve
committed
Remove Mono from private getChatMessageContentsAsync
1 parent 59b1fc8 commit 8d8d5df

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

aiservices/openai/src/main/java/com/microsoft/semantickernel/aiservices/openai/chatcompletion/OpenAIChatCompletion.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)