Skip to content

Commit 7fad457

Browse files
jasperbluesJasper Blues
andauthored
Replace depcreated usingLlm method with method arg (#29)
Co-authored-by: Jasper Blues <jblues@mypassglobal.com>
1 parent b133022 commit 7fad457

2 files changed

Lines changed: 22 additions & 14 deletions

File tree

src/main/java/com/embabel/template/agent/WriteAndReviewAgent.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,12 +140,13 @@ ReviewedStory reviewStory(UserInput userInput, Story story, OperationContext con
140140
}
141141

142142
@Action
143-
Story craftStory(UserInput userInput) {
144-
return PromptRunner.usingLlm(
145-
LlmOptions.fromCriteria(AutoModelSelectionCriteria.INSTANCE)
146-
.withTemperature(0.9) // Higher temperature for more creative output
147-
).withPromptContributor(Personas.WRITER)
148-
.createObject(String.format("""
143+
Story craftStory(UserInput userInput, OperationContext context) {
144+
PromptRunner runner = context.promptRunner()
145+
// Higher temperature for more creative output
146+
.withLlm(LlmOptions.fromCriteria(AutoModelSelectionCriteria.INSTANCE, 0.9))
147+
.withPromptContributor(Personas.WRITER);
148+
149+
return runner.createObject(String.format("""
149150
Craft a short story in %d words or less.
150151
The story should be engaging and imaginative.
151152
Use the user's input as inspiration if possible.
@@ -154,8 +155,8 @@ Story craftStory(UserInput userInput) {
154155
# User input
155156
%s
156157
""",
157-
storyWordCount,
158-
userInput.getContent()
159-
).trim(), Story.class);
158+
storyWordCount,
159+
userInput.getContent()
160+
).trim(), Story.class);
160161
}
161162
}

src/test/java/com/embabel/template/agent/WriteAndReviewAgentTest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.embabel.agent.domain.io.UserInput;
44
import com.embabel.agent.testing.unit.FakeOperationContext;
5+
import com.embabel.agent.testing.unit.FakePromptRunner;
56
import com.embabel.agent.testing.unit.UnitTestUtils;
67
import org.junit.jupiter.api.Test;
78

@@ -14,12 +15,18 @@ class WriteAndReviewAgentTest {
1415

1516
@Test
1617
void testWriteAndReviewAgent() {
18+
var context = FakeOperationContext.create();
19+
var promptRunner = (FakePromptRunner) context.promptRunner();
20+
context.expectResponse(new Story("One upon a time Sir Galahad . . "));
21+
1722
var agent = new WriteAndReviewAgent(200, 400);
18-
var llmCall = UnitTestUtils.captureLlmCall(() -> {
19-
agent.craftStory(new UserInput("Tell me a story about a brave knight", Instant.now()));
20-
});
21-
assertTrue(llmCall.getPrompt().contains("knight"), "Expected prompt to contain 'knight'");
22-
assertEquals(0.9, llmCall.getLlm().getTemperature(), 0.01,
23+
agent.craftStory(new UserInput("Tell me a story about a brave knight", Instant.now()), context);
24+
25+
String prompt = promptRunner.getLlmInvocations().getFirst().getPrompt();
26+
assertTrue(prompt.contains("knight"), "Expected prompt to contain 'knight'");
27+
28+
var temp = promptRunner.getLlmInvocations().getFirst().getInteraction().getLlm().getTemperature();
29+
assertEquals(0.9, temp, 0.01,
2330
"Expected temperature to be 0.9: Higher for more creative output");
2431
}
2532

0 commit comments

Comments
 (0)