diff --git a/README.md b/README.md index 0637184..6ed8412 100644 --- a/README.md +++ b/README.md @@ -555,7 +555,7 @@ public class BlogPostAgent implements BaseAgent { // OPTIONAL: How to parse/store the response (default: TextAgentResponseHandler("response")) @Override - public AgentResponseHandler responseHandler() { + public AgentResponseHandler responseHandler(final AgentContext ctx) { return new TextAgentResponseHandler("blogPost"); } diff --git a/pom.xml b/pom.xml index 646faa1..6f65991 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ lm-lib de.extio lm-lib - 1.9.0 + 1.9.2 21 diff --git a/src/main/java/de/extio/lmlib/agent/Agent.java b/src/main/java/de/extio/lmlib/agent/Agent.java index 1d6ff9d..62c8908 100755 --- a/src/main/java/de/extio/lmlib/agent/Agent.java +++ b/src/main/java/de/extio/lmlib/agent/Agent.java @@ -54,6 +54,14 @@ public record Agent(String name, return BaseAgent.super.modelProfile(context); } + @Override + public AgentResponseHandler responseHandler(final AgentContext context) { + if (responseHandler != null) { + return responseHandler; + } + return BaseAgent.super.responseHandler(context); + } + @Override public void preProcess(final AgentContext context) { if (preProcessor != null) { diff --git a/src/main/java/de/extio/lmlib/agent/BaseAgent.java b/src/main/java/de/extio/lmlib/agent/BaseAgent.java index 095cdca..3441ea6 100644 --- a/src/main/java/de/extio/lmlib/agent/BaseAgent.java +++ b/src/main/java/de/extio/lmlib/agent/BaseAgent.java @@ -56,7 +56,7 @@ public interface BaseAgent { return null; } - default AgentResponseHandler responseHandler() { + default AgentResponseHandler responseHandler(final AgentContext context) { return new TextAgentResponseHandler("response"); } @@ -107,12 +107,12 @@ public interface BaseAgent { boolean parseable = false; for (int i = 0; i < 2; i++) { - LOGGER.debug("Conversation: {}", conversation); + LOGGER.debug("Conversation: {}", conversation); - final var responseHandler = this.responseHandler(); final var modelProfile = this.modelProfile(split.context()); + final var responseHandler = this.responseHandler(split.context()); + long requestStart = 0; Completion completion = null; - final var requestStart = System.currentTimeMillis(); if (split.context().isStreaming()) { if (responseHandler instanceof final StreamedAgentResponseHandler streamedResponseHandler) { streamedResponseHandler.beforeStream(split.context()); @@ -125,17 +125,21 @@ public interface BaseAgent { } }; if (modelProfile != null) { + requestStart = System.currentTimeMillis(); completion = client.streamConversation(modelProfile, conversation, chunkConsumer); } else { + requestStart = System.currentTimeMillis(); completion = client.streamConversation(this.modelCategory(split.context()), conversation, chunkConsumer); } } else { if (modelProfile != null) { + requestStart = System.currentTimeMillis(); completion = client.conversation(modelProfile, conversation); } else { + requestStart = System.currentTimeMillis(); completion = client.conversation(this.modelCategory(split.context()), conversation); } }