Skip to content

Commit 587d29f

Browse files
committed
code refactoring
1 parent ecb59d8 commit 587d29f

File tree

8 files changed

+47
-44
lines changed

8 files changed

+47
-44
lines changed

core/src/main/java/com/javaaidev/agenticpatterns/core/PromptTemplateHelper.java renamed to core/src/main/java/com/javaaidev/agenticpatterns/core/Utils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.jspecify.annotations.Nullable;
1010
import org.springframework.core.io.ClassPathResource;
1111

12-
public class PromptTemplateHelper {
12+
public class Utils {
1313

1414
public static String loadPromptTemplateFromClasspath(String resource) {
1515
try {

examples/src/main/java/com/javaaidev/agenticpatterns/examples/evaluatoroptimizer/CodeGenerationAgent.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.javaaidev.agenticpatterns.examples.evaluatoroptimizer;
22

3-
import com.javaaidev.agenticpatterns.core.PromptTemplateHelper;
3+
import com.javaaidev.agenticpatterns.core.Utils;
44
import com.javaaidev.agenticpatterns.evaluatoroptimizer.PromptBasedEvaluatorOptimizerAgent;
55
import com.javaaidev.agenticpatterns.examples.evaluatoroptimizer.CodeGenerationAgent.CodeGenerationRequest;
66
import com.javaaidev.agenticpatterns.examples.evaluatoroptimizer.CodeGenerationAgent.CodeGenerationResponse;
@@ -30,35 +30,33 @@ protected ChatClient getEvaluationChatClient() {
3030

3131
@Override
3232
protected String getInitialResultPromptTemplate() {
33-
return PromptTemplateHelper.loadPromptTemplateFromClasspath(
33+
return Utils.loadPromptTemplateFromClasspath(
3434
"prompt_template/code-generator/initial-result.st");
3535
}
3636

3737
@Override
3838
protected @Nullable Map<String, Object> buildInitialResultPromptContext(
3939
@Nullable CodeGenerationRequest codeGenerationRequest) {
40-
var input = Optional.ofNullable(codeGenerationRequest).map(CodeGenerationRequest::input)
41-
.orElse("");
42-
return Map.of("input", input);
40+
return Map.of("input",
41+
Utils.safeGet(codeGenerationRequest, CodeGenerationRequest::input, ""));
4342
}
4443

4544
@Override
4645
protected String getEvaluationPromptTemplate() {
47-
return PromptTemplateHelper.loadPromptTemplateFromClasspath(
46+
return Utils.loadPromptTemplateFromClasspath(
4847
"prompt_template/code-generator/evaluation.st");
4948
}
5049

5150
@Override
5251
protected @Nullable Map<String, Object> buildEvaluationPromptContext(
5352
@Nullable CodeGenerationResponse codeGenerationResponse) {
54-
var code = Optional.ofNullable(codeGenerationResponse).map(CodeGenerationResponse::code)
55-
.orElse("");
56-
return Map.of("code", code);
53+
return Map.of("code",
54+
Utils.safeGet(codeGenerationResponse, CodeGenerationResponse::code, ""));
5755
}
5856

5957
@Override
6058
protected String getOptimizationPromptTemplate() {
61-
return PromptTemplateHelper.loadPromptTemplateFromClasspath(
59+
return Utils.loadPromptTemplateFromClasspath(
6260
"prompt_template/code-generator/optimization.st");
6361
}
6462

examples/src/main/java/com/javaaidev/agenticpatterns/examples/parallelizationworkflow/AlgorithmArticleGenerationAgent.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.javaaidev.agenticpatterns.examples.parallelizationworkflow;
22

3+
import com.javaaidev.agenticpatterns.core.Utils;
34
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.AlgorithmArticleGenerationAgent.AlgorithmArticleGenerationRequest;
45
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.AlgorithmArticleGenerationAgent.AlgorithmArticleGenerationResponse;
56
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.SampleCodeGenerationAgent.SampleCodeGenerationRequest;
67
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.SampleCodeGenerationAgent.SampleCodeGenerationResponse;
78
import com.javaaidev.agenticpatterns.parallelizationworkflow.ParallelizationWorkflowAgent;
89
import java.util.List;
910
import java.util.Map;
10-
import java.util.Optional;
1111
import java.util.stream.Collectors;
1212
import org.jspecify.annotations.Nullable;
1313
import org.springframework.ai.chat.client.ChatClient;
@@ -37,9 +37,8 @@ protected String getPromptTemplate() {
3737
@Override
3838
protected @Nullable Map<String, Object> getParentPromptContext(
3939
@Nullable AlgorithmArticleGenerationRequest request) {
40-
var algorithm = Optional.ofNullable(request).map(AlgorithmArticleGenerationRequest::algorithm)
41-
.orElse("");
42-
return Map.of("algorithm", algorithm);
40+
return Map.of("algorithm",
41+
Utils.safeGet(request, AlgorithmArticleGenerationRequest::algorithm, ""));
4342
}
4443

4544
@Override
@@ -57,8 +56,8 @@ protected String getPromptTemplate() {
5756
@Override
5857
protected @Nullable List<SubtaskCreationRequest<AlgorithmArticleGenerationRequest>> createTasks(
5958
@Nullable AlgorithmArticleGenerationRequest request) {
60-
var languages = Optional.ofNullable(request).map(AlgorithmArticleGenerationRequest::languages)
61-
.orElse(List.of());
59+
var languages = Utils.safeGet(request,
60+
AlgorithmArticleGenerationRequest::languages, List.of());
6261
if (CollectionUtils.isEmpty(languages)) {
6362
return List.of();
6463
}

examples/src/main/java/com/javaaidev/agenticpatterns/examples/parallelizationworkflow/SampleCodeGenerationAgent.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.javaaidev.agenticpatterns.examples.parallelizationworkflow;
22

3+
import com.javaaidev.agenticpatterns.core.Utils;
34
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.SampleCodeGenerationAgent.SampleCodeGenerationRequest;
45
import com.javaaidev.agenticpatterns.examples.parallelizationworkflow.SampleCodeGenerationAgent.SampleCodeGenerationResponse;
56
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
67
import java.util.Map;
7-
import java.util.Optional;
88
import org.jspecify.annotations.Nullable;
99
import org.springframework.ai.chat.client.ChatClient;
1010

@@ -29,13 +29,11 @@ protected String getPromptTemplate() {
2929
@Override
3030
protected @Nullable Map<String, Object> getPromptContext(
3131
@Nullable SampleCodeGenerationRequest request) {
32-
var language = Optional.ofNullable(request)
33-
.map(SampleCodeGenerationRequest::language).orElse("java");
34-
var description = Optional.ofNullable(request)
35-
.map(SampleCodeGenerationRequest::description).orElse("");
3632
return Map.of(
37-
"language", language,
38-
"description", description
33+
"language",
34+
Utils.safeGet(request, SampleCodeGenerationRequest::language, "java"),
35+
"description",
36+
Utils.safeGet(request, SampleCodeGenerationRequest::description, "")
3937
);
4038
}
4139

examples/src/main/java/com/javaaidev/agenticpatterns/examples/routingworkflow/CustomerSupportAgent.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.javaaidev.agenticpatterns.examples.routingworkflow;
22

3-
import com.javaaidev.agenticpatterns.core.PromptTemplateHelper;
3+
import com.javaaidev.agenticpatterns.core.Utils;
44
import com.javaaidev.agenticpatterns.examples.routingworkflow.CustomerSupportAgent.CustomerSupportRequest;
55
import com.javaaidev.agenticpatterns.examples.routingworkflow.CustomerSupportAgent.CustomerSupportResponse;
66
import com.javaaidev.agenticpatterns.routingworkflow.RoutingWorkflowAgent;
@@ -26,14 +26,19 @@ protected CustomerSupportAgent(ChatClient chatClient) {
2626
}
2727

2828
private void initRoutes() {
29-
addRoutingChoice(new RoutingChoice<>("payment", "Handle requests about payment and refund",
29+
addRoutingChoice(new RoutingChoice<>("payment", "Handle queries about payment and refund",
3030
new PaymentSupportAgent(chatClient)));
31-
addRoutingChoice(new RoutingChoice<>("shipping", "Handle requests about shipping",
31+
addRoutingChoice(new RoutingChoice<>("shipping", "Handle queries about shipping",
3232
new ShippingSupportAgent(chatClient)));
33-
addRoutingChoice(new RoutingChoice<>("general", "Handle general requests",
33+
addRoutingChoice(new RoutingChoice<>("general", "Handle general queries",
3434
new GeneralSupportAgent(chatClient)));
3535
}
3636

37+
@Override
38+
protected String formatRequest(@Nullable CustomerSupportRequest request) {
39+
return Utils.safeGet(request, CustomerSupportRequest::question, "");
40+
}
41+
3742
public record CustomerSupportRequest(String question) {
3843

3944
}
@@ -59,13 +64,13 @@ protected String getPromptTemplate() {
5964
@Nullable CustomerSupportRequest customerSupportRequest) {
6065
return Map.of(
6166
"question",
62-
PromptTemplateHelper.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
67+
Utils.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
6368
);
6469
}
6570

6671
@Override
6772
protected void updateRequest(ChatClientRequestSpec spec) {
68-
spec.system("Pretend to be a customer support agent for payment, be polite and helper");
73+
spec.system("You are a customer support agent for payment, be polite and helper");
6974
}
7075
}
7176

@@ -86,13 +91,13 @@ protected String getPromptTemplate() {
8691
@Nullable CustomerSupportRequest customerSupportRequest) {
8792
return Map.of(
8893
"question",
89-
PromptTemplateHelper.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
94+
Utils.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
9095
);
9196
}
9297

9398
@Override
9499
protected void updateRequest(ChatClientRequestSpec spec) {
95-
spec.system("Pretend to be a customer support agent for shipping, be polite and helper");
100+
spec.system("You are a customer support agent for shipping, be polite and helper");
96101
}
97102
}
98103

@@ -113,14 +118,14 @@ protected String getPromptTemplate() {
113118
@Nullable CustomerSupportRequest customerSupportRequest) {
114119
return Map.of(
115120
"question",
116-
PromptTemplateHelper.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
121+
Utils.safeGet(customerSupportRequest, CustomerSupportRequest::question, "")
117122
);
118123
}
119124

120125
@Override
121126
protected void updateRequest(ChatClientRequestSpec spec) {
122127
spec.system(
123-
"Pretend to be a customer support agent for general questions, be polite and helper");
128+
"You are a customer support agent for general questions, be polite and helper");
124129
}
125130
}
126131
}

examples/src/main/java/com/javaaidev/agenticpatterns/examples/taskexecution/UserGenerationAgent.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package com.javaaidev.agenticpatterns.examples.taskexecution;
22

3-
import com.javaaidev.agenticpatterns.core.PromptTemplateHelper;
3+
import com.javaaidev.agenticpatterns.core.Utils;
44
import com.javaaidev.agenticpatterns.examples.taskexecution.UserGenerationAgent.UserGenerationRequest;
55
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
66
import java.util.List;
77
import java.util.Map;
8-
import java.util.Optional;
98
import org.jspecify.annotations.Nullable;
109
import org.springframework.ai.chat.client.ChatClient;
1110

@@ -17,14 +16,14 @@ public UserGenerationAgent(ChatClient chatClient) {
1716

1817
@Override
1918
protected String getPromptTemplate() {
20-
return PromptTemplateHelper.loadPromptTemplateFromClasspath("prompt_template/generate-user.st");
19+
return Utils.loadPromptTemplateFromClasspath("prompt_template/generate-user.st");
2120
}
2221

2322
@Override
2423
protected @Nullable Map<String, Object> getPromptContext(
2524
@Nullable UserGenerationRequest userGenerationRequest) {
26-
var count = Optional.ofNullable(userGenerationRequest).map(UserGenerationRequest::count)
27-
.orElse(1);
25+
var count = Utils.safeGet(userGenerationRequest, UserGenerationRequest::count,
26+
1);
2827
return Map.of(
2928
"count", Math.max(1, count)
3029
);

parallelization-workflow/src/main/java/com/javaaidev/agenticpatterns/parallelizationworkflow/ParallelizationWorkflowAgent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.javaaidev.agenticpatterns.parallelizationworkflow;
22

3-
import com.javaaidev.agenticpatterns.core.PromptTemplateHelper;
3+
import com.javaaidev.agenticpatterns.core.Utils;
44
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
55
import java.lang.reflect.Type;
66
import java.time.Duration;
@@ -187,7 +187,7 @@ public PromptBasedAssembling(ChatClient chatClient, @Nullable Type responseType)
187187

188188
@Override
189189
protected @Nullable Map<String, Object> getPromptContext(@Nullable Request request) {
190-
return PromptTemplateHelper.mergeMap(getParentPromptContext(request),
190+
return Utils.mergeMap(getParentPromptContext(request),
191191
getSubtasksPromptContext(runSubtasks(request)));
192192
}
193193
}

routing-workflow/src/main/java/com/javaaidev/agenticpatterns/routingworkflow/RoutingWorkflowAgent.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,19 @@ protected String getRoutingPromptTemplate() {
6868
""";
6969
}
7070

71+
protected String formatRequest(@Nullable Request request) {
72+
return Objects.toString(request, "");
73+
}
74+
7175
protected @Nullable Map<String, Object> getRoutingPromptContext(
7276
@Nullable RoutingRequest<Request, Response> routingRequest) {
7377
Assert.notNull(routingRequest, "routing request cannot be null");
7478
var choices = routingChoices.stream().map(choice ->
75-
"- %s: %s\n".formatted(choice.name(), choice.description()))
76-
.collect(Collectors.joining("\n\n"));
79+
"- %s: %s".formatted(choice.name(), choice.description()))
80+
.collect(Collectors.joining("\n"));
7781
return Map.of(
7882
"choices", choices,
79-
"input", Objects.toString(routingRequest.request(), "")
83+
"input", formatRequest(routingRequest.request())
8084
);
8185
}
8286

0 commit comments

Comments
 (0)