diff --git a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java index 2dc34bea254..dbc52b2ffd1 100644 --- a/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java +++ b/models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java @@ -351,7 +351,7 @@ public Flux internalStream(Prompt prompt, ChatResponse previousCha MergeUtils::mergeChatCompletions); return List.of(reduce); }) - .flatMap(mono -> mono); + .flatMapSequential(mono -> mono); final Flux chatResponseFlux = accessibleChatCompletionsFlux.map(chatCompletion -> { if (previousChatResponse == null) { @@ -377,7 +377,7 @@ public Flux internalStream(Prompt prompt, ChatResponse previousCha return chatResponse1; }); - return chatResponseFlux.flatMap(chatResponse -> { + return chatResponseFlux.flatMapSequential(chatResponse -> { if (this.toolExecutionEligibilityPredicate.isToolExecutionRequired(prompt.getOptions(), chatResponse)) { // FIXME: bounded elastic needs to be used since tool calling // is currently only synchronous