Skip to content

Commit 66cef01

Browse files
committed
refactor: enhance response serialization and improve schema generation error handling
1 parent c52fafa commit 66cef01

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiChatCompletionResponse.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static lombok.AccessLevel.NONE;
55
import static lombok.AccessLevel.PACKAGE;
66

7+
import com.fasterxml.jackson.core.JsonProcessingException;
78
import com.google.common.annotations.Beta;
89
import com.sap.ai.sdk.foundationmodels.openai.generated.model.CompletionUsage;
910
import com.sap.ai.sdk.foundationmodels.openai.generated.model.CreateChatCompletionResponse;
@@ -107,7 +108,14 @@ public <T, R> List<OpenAiToolMessage> executeTools(List<OpenAiTool<T, R>> tools)
107108
if (tool.getName().equals(functionCall.getName())) {
108109
T arguments = functionCall.getArgumentsAsObject(tool);
109110
R response = tool.execute(arguments);
110-
toolMessages.add(OpenAiMessage.tool(response.toString(), functionCall.getId()));
111+
112+
String serializedResponse;
113+
try {
114+
serializedResponse = OpenAiUtils.getOpenAiObjectMapper().writeValueAsString(response);
115+
} catch (JsonProcessingException e) {
116+
throw new IllegalArgumentException(e);
117+
}
118+
toolMessages.add(OpenAiMessage.tool(serializedResponse, functionCall.getId()));
111119
}
112120
}
113121
}

foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/OpenAiTool.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,9 @@ ChatCompletionTool createChatCompletionTool() {
9797
final var objectMapper = new ObjectMapper();
9898
JsonSchema schema = null;
9999
try {
100-
schema =
101-
new JsonSchemaGenerator(objectMapper)
102-
.generateSchema(new TypeReference<T>() {}.getClass());
100+
schema = new JsonSchemaGenerator(objectMapper).generateSchema(getRequestClass());
103101
} catch (JsonMappingException e) {
104-
throw new IllegalArgumentException("Could not generate schema for " + name, e);
102+
throw new IllegalArgumentException("Could not generate schema for " + getRequestClass(), e);
105103
}
106104

107105
final var schemaMap =

0 commit comments

Comments
 (0)