Skip to content

Commit 8e3a379

Browse files
committed
Filter exc classes better static
1 parent bcf8c44 commit 8e3a379

File tree

9 files changed

+46
-48
lines changed

9 files changed

+46
-48
lines changed

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationChatResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.fasterxml.jackson.core.JsonProcessingException;
66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import com.fasterxml.jackson.databind.exc.InvalidDefinitionException;
8+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationOutputFilterException;
89
import com.sap.ai.sdk.orchestration.model.AssistantChatMessage;
910
import com.sap.ai.sdk.orchestration.model.ChatMessage;
1011
import com.sap.ai.sdk.orchestration.model.ChatMessageContent;

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationClient.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.fasterxml.jackson.databind.node.ObjectNode;
99
import com.google.common.annotations.Beta;
1010
import com.sap.ai.sdk.core.AiCoreService;
11+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationOutputFilterException;
1112
import com.sap.ai.sdk.orchestration.model.CompletionPostRequest;
1213
import com.sap.ai.sdk.orchestration.model.CompletionPostResponse;
1314
import com.sap.ai.sdk.orchestration.model.EmbeddingsPostRequest;
@@ -113,7 +114,8 @@ public Stream<String> streamChatCompletion(
113114
.map(OrchestrationChatCompletionDelta::getDeltaContent);
114115
}
115116

116-
private static void throwOnContentFilter(@Nonnull final OrchestrationChatCompletionDelta delta) {
117+
private static void throwOnContentFilter(@Nonnull final OrchestrationChatCompletionDelta delta)
118+
throws OrchestrationOutputFilterException {
117119
final String finishReason = delta.getFinishReason();
118120
if (finishReason != null && finishReason.equals("content_filter")) {
119121
final var filterDetails =

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationExceptionFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.common.annotations.Beta;
44
import com.sap.ai.sdk.core.common.ClientExceptionFactory;
5+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationInputFilterException;
56
import java.util.Collections;
67
import java.util.Map;
78
import java.util.Optional;

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationFilterException.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,43 @@
1414
* orchestration process.
1515
*/
1616
@Beta
17-
@StandardException(access = AccessLevel.PROTECTED)
17+
@StandardException(access = AccessLevel.PRIVATE)
1818
public class OrchestrationFilterException extends OrchestrationClientException {
1919

2020
/** Details about the filter that caused the exception. */
2121
@Getter @Nonnull protected Map<String, Object> filterDetails = Map.of();
22+
23+
/** Exception thrown when an error occurs during input filtering in orchestration. */
24+
public static class OrchestrationInputFilterException extends OrchestrationFilterException {
25+
/**
26+
* Constructs a new OrchestrationInputFilterException.
27+
*
28+
* @param message the detail message
29+
* @param clientError the specific client error
30+
* @param filterDetails details about the filter that caused the exception
31+
*/
32+
OrchestrationInputFilterException(
33+
@Nonnull final String message,
34+
@Nonnull final OrchestrationError clientError,
35+
@Nonnull final Map<String, Object> filterDetails) {
36+
super(message);
37+
setClientError(clientError);
38+
this.filterDetails = filterDetails;
39+
}
40+
}
41+
42+
/** Exception thrown output filtering in orchestration when finish reason is content filter */
43+
public static class OrchestrationOutputFilterException extends OrchestrationFilterException {
44+
/**
45+
* Constructs a new OrchestrationOutputFilterException.
46+
*
47+
* @param message the detail message
48+
* @param filterDetails details about the filter that caused the exception
49+
*/
50+
OrchestrationOutputFilterException(
51+
@Nonnull final String message, @Nonnull final Map<String, Object> filterDetails) {
52+
super(message);
53+
this.filterDetails = filterDetails;
54+
}
55+
}
2256
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationInputFilterException.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationOutputFilterException.java

Lines changed: 0 additions & 19 deletions
This file was deleted.

orchestration/src/test/java/com/sap/ai/sdk/orchestration/OrchestrationUnitTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
3939
import com.github.tomakehurst.wiremock.junit5.WireMockTest;
4040
import com.github.tomakehurst.wiremock.stubbing.Scenario;
41+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationInputFilterException;
42+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationOutputFilterException;
4143
import com.sap.ai.sdk.orchestration.model.ChatDelta;
4244
import com.sap.ai.sdk.orchestration.model.DPIConfig;
4345
import com.sap.ai.sdk.orchestration.model.DPIEntities;

sample-code/spring-app/src/main/java/com/sap/ai/sdk/app/controllers/OrchestrationController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.sap.ai.sdk.app.services.OrchestrationService;
66
import com.sap.ai.sdk.orchestration.AzureFilterThreshold;
77
import com.sap.ai.sdk.orchestration.OrchestrationChatResponse;
8-
import com.sap.ai.sdk.orchestration.OrchestrationInputFilterException;
9-
import com.sap.ai.sdk.orchestration.OrchestrationOutputFilterException;
8+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationInputFilterException;
9+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationOutputFilterException;
1010
import com.sap.ai.sdk.orchestration.model.DPIEntities;
1111
import com.sap.cloud.sdk.cloudplatform.thread.ThreadContextExecutors;
1212
import java.io.IOException;

sample-code/spring-app/src/test/java/com/sap/ai/sdk/app/controllers/OrchestrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
import com.sap.ai.sdk.orchestration.Message;
1515
import com.sap.ai.sdk.orchestration.OrchestrationClient;
1616
import com.sap.ai.sdk.orchestration.OrchestrationClientException;
17-
import com.sap.ai.sdk.orchestration.OrchestrationInputFilterException;
17+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationInputFilterException;
1818
import com.sap.ai.sdk.orchestration.OrchestrationModuleConfig;
19-
import com.sap.ai.sdk.orchestration.OrchestrationOutputFilterException;
19+
import com.sap.ai.sdk.orchestration.OrchestrationFilterException.OrchestrationOutputFilterException;
2020
import com.sap.ai.sdk.orchestration.OrchestrationPrompt;
2121
import com.sap.ai.sdk.orchestration.TemplateConfig;
2222
import com.sap.ai.sdk.orchestration.TextItem;

0 commit comments

Comments
 (0)