Skip to content

Commit b66ecd3

Browse files
committed
convert object to map
1 parent 0232737 commit b66ecd3

File tree

4 files changed

+22
-17
lines changed

4 files changed

+22
-17
lines changed

core/src/main/java/com/javaaidev/agenticpatterns/core/AgentUtils.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.javaaidev.agenticpatterns.core;
22

33
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.core.type.TypeReference;
45
import com.fasterxml.jackson.databind.ObjectMapper;
56
import com.fasterxml.jackson.databind.SerializationFeature;
67
import java.io.IOException;
@@ -41,11 +42,27 @@ public static <T, R> R safeGet(@Nullable T obj, Function<T, R> extractor, R defa
4142
return Optional.ofNullable(obj).map(extractor).orElse(defaultValue);
4243
}
4344

44-
public static String toJson(Object input) {
45+
public static String toJson(@Nullable Object input) {
46+
if (input == null) {
47+
return "{}";
48+
}
4549
try {
4650
return objectMapper.writeValueAsString(input);
4751
} catch (JsonProcessingException e) {
4852
return "{}";
4953
}
5054
}
55+
56+
public static Map<String, Object> objectToMap(@Nullable Object object) {
57+
if (object == null) {
58+
return new HashMap<>();
59+
}
60+
var json = toJson(object);
61+
try {
62+
return objectMapper.readValue(json, new TypeReference<>() {
63+
});
64+
} catch (JsonProcessingException e) {
65+
return new HashMap<>();
66+
}
67+
}
5168
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ protected String getInitialResultPromptTemplate() {
3030
@Override
3131
protected @Nullable Map<String, Object> buildInitialResultPromptContext(
3232
@Nullable CodeGenerationRequest request) {
33-
return Map.of("input",
34-
AgentUtils.safeGet(request, CodeGenerationRequest::input, ""));
33+
return AgentUtils.objectToMap(request);
3534
}
3635

3736
@Override
@@ -43,8 +42,7 @@ protected String getEvaluationPromptTemplate() {
4342
@Override
4443
protected @Nullable Map<String, Object> buildEvaluationPromptContext(
4544
@Nullable CodeGenerationResponse codeGenerationResponse) {
46-
return Map.of("code",
47-
AgentUtils.safeGet(codeGenerationResponse, CodeGenerationResponse::code, ""));
45+
return AgentUtils.objectToMap(codeGenerationResponse);
4846
}
4947

5048
@Override

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.javaaidev.agenticpatterns.taskexecution.TaskExecutionAgent;
66
import io.micrometer.observation.ObservationRegistry;
77
import java.util.List;
8-
import java.util.Map;
98
import java.util.function.Function;
109
import org.jspecify.annotations.Nullable;
1110
import org.springframework.ai.chat.client.ChatClient;
@@ -24,16 +23,6 @@ protected String getPromptTemplate() {
2423
return AgentUtils.loadPromptTemplateFromClasspath("prompt_template/generate-user.st");
2524
}
2625

27-
@Override
28-
protected Map<String, Object> getPromptContext(
29-
@Nullable UserGenerationRequest userGenerationRequest) {
30-
var count = AgentUtils.safeGet(userGenerationRequest, UserGenerationRequest::count,
31-
1);
32-
return Map.of(
33-
"count", Math.max(1, count)
34-
);
35-
}
36-
3726
public record UserGenerationRequest(int count) {
3827

3928
}

task-execution/src/main/java/com/javaaidev/agenticpatterns/taskexecution/TaskExecutionAgent.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.javaaidev.agenticpatterns.core.Agent;
44
import com.javaaidev.agenticpatterns.core.AgentExecutionException;
5+
import com.javaaidev.agenticpatterns.core.AgentUtils;
56
import com.javaaidev.agenticpatterns.core.TypeResolver;
67
import com.javaaidev.agenticpatterns.core.observation.AgentExecutionObservationContext;
78
import com.javaaidev.agenticpatterns.core.observation.AgentExecutionObservationDocumentation;
@@ -66,7 +67,7 @@ protected TaskExecutionAgent(ChatClient chatClient, @Nullable Type responseType,
6667
*/
6768
@Nullable
6869
protected Map<String, Object> getPromptContext(@Nullable Request request) {
69-
return new HashMap<>();
70+
return AgentUtils.objectToMap(request);
7071
}
7172

7273
/**

0 commit comments

Comments
 (0)