From c78fa2c8af345b3a707c776414e9c2aa01357a2e Mon Sep 17 00:00:00 2001 From: vinothini Date: Sun, 20 Jul 2025 18:20:24 +0530 Subject: [PATCH] Update ChatModelStreamAdvisor.java Signed-off-by: vinothini --- .../client/advisor/ChatModelStreamAdvisor.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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