diff --git a/pom.xml b/pom.xml index a933ac0..bb5953d 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ lm-lib de.extio lm-lib - 1.6.0 + 1.6.2 21 diff --git a/src/main/java/de/extio/lmlib/agent/responsehandler/TextAgentResponseHandler.java b/src/main/java/de/extio/lmlib/agent/responsehandler/TextAgentResponseHandler.java index 10cb722..18c108b 100755 --- a/src/main/java/de/extio/lmlib/agent/responsehandler/TextAgentResponseHandler.java +++ b/src/main/java/de/extio/lmlib/agent/responsehandler/TextAgentResponseHandler.java @@ -1,6 +1,7 @@ package de.extio.lmlib.agent.responsehandler; import java.util.Objects; +import java.util.function.Consumer; import java.util.function.Function; import org.slf4j.Logger; @@ -22,16 +23,19 @@ public class TextAgentResponseHandler implements StreamedAgentResponseHandler { private final Function transformer; private final Function chunkTransformer; + + private final Consumer afterChunkUpdate; public TextAgentResponseHandler(final String key) { - this(key, null, null); + this(key, null, null, null); } - public TextAgentResponseHandler(final String key, final Function transformer, final Function chunkTransformer) { + public TextAgentResponseHandler(final String key, final Function transformer, final Function chunkTransformer, final Consumer afterChunkUpdate) { this.key = key; this.chunkKey = key.concat("_chunk"); this.transformer = transformer; this.chunkTransformer = chunkTransformer; + this.afterChunkUpdate = afterChunkUpdate; } @Override @@ -57,8 +61,11 @@ public class TextAgentResponseHandler implements StreamedAgentResponseHandler { chunk = this.chunkTransformer.apply(chunk); } context.setStringValue(this.chunkKey, chunk); - context.setStringValue(this.key, Objects.requireNonNullElse(context.getStringValue(this.key), "".concat(chunk))); + context.setStringValue(this.key, Objects.requireNonNullElse(context.getStringValue(this.key), "").concat(chunk)); context.setStringValue(UPDATE_KEY, this.key); + if (afterChunkUpdate != null) { + afterChunkUpdate.accept(context); + } return true; }