From 6c370d46d0dbb831245165898a85748ff2d7ae73 Mon Sep 17 00:00:00 2001 From: Jasper Blues Date: Wed, 6 Aug 2025 11:57:24 +1000 Subject: [PATCH] Replace depcreated usingLlm method with method arg --- .../template/agent/WriteAndReviewAgent.java | 19 ++++++++++--------- .../agent/WriteAndReviewAgentTest.java | 17 ++++++++++++----- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/embabel/template/agent/WriteAndReviewAgent.java b/src/main/java/com/embabel/template/agent/WriteAndReviewAgent.java index 5c1d37f..250eed4 100644 --- a/src/main/java/com/embabel/template/agent/WriteAndReviewAgent.java +++ b/src/main/java/com/embabel/template/agent/WriteAndReviewAgent.java @@ -140,12 +140,13 @@ ReviewedStory reviewStory(UserInput userInput, Story story, OperationContext con } @Action - Story craftStory(UserInput userInput) { - return PromptRunner.usingLlm( - LlmOptions.fromCriteria(AutoModelSelectionCriteria.INSTANCE) - .withTemperature(0.9) // Higher temperature for more creative output - ).withPromptContributor(Personas.WRITER) - .createObject(String.format(""" + Story craftStory(UserInput userInput, OperationContext context) { + PromptRunner runner = context.promptRunner() + // Higher temperature for more creative output + .withLlm(LlmOptions.fromCriteria(AutoModelSelectionCriteria.INSTANCE, 0.9)) + .withPromptContributor(Personas.WRITER); + + return runner.createObject(String.format(""" Craft a short story in %d words or less. The story should be engaging and imaginative. Use the user's input as inspiration if possible. @@ -154,8 +155,8 @@ Story craftStory(UserInput userInput) { # User input %s """, - storyWordCount, - userInput.getContent() - ).trim(), Story.class); + storyWordCount, + userInput.getContent() + ).trim(), Story.class); } } \ No newline at end of file diff --git a/src/test/java/com/embabel/template/agent/WriteAndReviewAgentTest.java b/src/test/java/com/embabel/template/agent/WriteAndReviewAgentTest.java index 691d075..d3db4ee 100644 --- a/src/test/java/com/embabel/template/agent/WriteAndReviewAgentTest.java +++ b/src/test/java/com/embabel/template/agent/WriteAndReviewAgentTest.java @@ -2,6 +2,7 @@ import com.embabel.agent.domain.io.UserInput; import com.embabel.agent.testing.unit.FakeOperationContext; +import com.embabel.agent.testing.unit.FakePromptRunner; import com.embabel.agent.testing.unit.UnitTestUtils; import org.junit.jupiter.api.Test; @@ -14,12 +15,18 @@ class WriteAndReviewAgentTest { @Test void testWriteAndReviewAgent() { + var context = FakeOperationContext.create(); + var promptRunner = (FakePromptRunner) context.promptRunner(); + context.expectResponse(new Story("One upon a time Sir Galahad . . ")); + var agent = new WriteAndReviewAgent(200, 400); - var llmCall = UnitTestUtils.captureLlmCall(() -> { - agent.craftStory(new UserInput("Tell me a story about a brave knight", Instant.now())); - }); - assertTrue(llmCall.getPrompt().contains("knight"), "Expected prompt to contain 'knight'"); - assertEquals(0.9, llmCall.getLlm().getTemperature(), 0.01, + agent.craftStory(new UserInput("Tell me a story about a brave knight", Instant.now()), context); + + String prompt = promptRunner.getLlmInvocations().getFirst().getPrompt(); + assertTrue(prompt.contains("knight"), "Expected prompt to contain 'knight'"); + + var temp = promptRunner.getLlmInvocations().getFirst().getInteraction().getLlm().getTemperature(); + assertEquals(0.9, temp, 0.01, "Expected temperature to be 0.9: Higher for more creative output"); }