Fix TextAgentResponseHandler, Added afterChunkUpdate()

This commit is contained in:
extio-de
2025-06-29 17:29:37 +02:00
parent b761018f9f
commit c5e2ace604
2 changed files with 11 additions and 4 deletions

View File

@@ -4,7 +4,7 @@
<artifactId>lm-lib</artifactId> <artifactId>lm-lib</artifactId>
<groupId>de.extio</groupId> <groupId>de.extio</groupId>
<name>lm-lib</name> <name>lm-lib</name>
<version>1.6.0</version> <version>1.6.2</version>
<properties> <properties>
<java.version>21</java.version> <java.version>21</java.version>

View File

@@ -1,6 +1,7 @@
package de.extio.lmlib.agent.responsehandler; package de.extio.lmlib.agent.responsehandler;
import java.util.Objects; import java.util.Objects;
import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -22,16 +23,19 @@ public class TextAgentResponseHandler implements StreamedAgentResponseHandler {
private final Function<String, String> transformer; private final Function<String, String> transformer;
private final Function<String, String> chunkTransformer; private final Function<String, String> chunkTransformer;
private final Consumer<AgentContext> afterChunkUpdate;
public TextAgentResponseHandler(final String key) { public TextAgentResponseHandler(final String key) {
this(key, null, null); this(key, null, null, null);
} }
public TextAgentResponseHandler(final String key, final Function<String, String> transformer, final Function<String, String> chunkTransformer) { public TextAgentResponseHandler(final String key, final Function<String, String> transformer, final Function<String, String> chunkTransformer, final Consumer<AgentContext> afterChunkUpdate) {
this.key = key; this.key = key;
this.chunkKey = key.concat("_chunk"); this.chunkKey = key.concat("_chunk");
this.transformer = transformer; this.transformer = transformer;
this.chunkTransformer = chunkTransformer; this.chunkTransformer = chunkTransformer;
this.afterChunkUpdate = afterChunkUpdate;
} }
@Override @Override
@@ -57,8 +61,11 @@ public class TextAgentResponseHandler implements StreamedAgentResponseHandler {
chunk = this.chunkTransformer.apply(chunk); chunk = this.chunkTransformer.apply(chunk);
} }
context.setStringValue(this.chunkKey, 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); context.setStringValue(UPDATE_KEY, this.key);
if (afterChunkUpdate != null) {
afterChunkUpdate.accept(context);
}
return true; return true;
} }