diff --git a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ChatModelStreamAdvisor.java b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ChatModelStreamAdvisor.java index de691318df1..ce6fcd05514 100644 --- a/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ChatModelStreamAdvisor.java +++ b/spring-ai-client-chat/src/main/java/org/springframework/ai/chat/client/advisor/ChatModelStreamAdvisor.java @@ -50,11 +50,15 @@ public Flux adviseStream(ChatClientRequest chatClientRequest Assert.notNull(chatClientRequest, "the chatClientRequest cannot be null"); return this.chatModel.stream(chatClientRequest.prompt()) - .map(chatResponse -> ChatClientResponse.builder() - .chatResponse(chatResponse) - .context(Map.copyOf(chatClientRequest.context())) - .build()) - .publishOn(Schedulers.boundedElastic()); // TODO add option to disable + .map(chatResponse -> { + boolean isStop = "stop".equals( + chatResponse.getResult().getMetadata().getFinishReason()); + return ChatClientResponse.builder() + .chatResponse(chatResponse) + .context(isStop ? Map.copyOf(chatClientRequest.context()) : Map.of()) + .build(); + }) + .publishOn(Schedulers.boundedElastic()); // TODO add option to disable // TODO add option to disable// TODO add option to disable } @Override