Skip to content

Commit 8f28e41

Browse files
OpenAiStreamingHandler
1 parent 31fabfa commit 8f28e41

File tree

2 files changed

+10
-127
lines changed

2 files changed

+10
-127
lines changed

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

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

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.sap.ai.sdk.foundationmodels.openai;
22

33
import static com.sap.ai.sdk.foundationmodels.openai.OpenAiClient.JACKSON;
4-
import static com.sap.ai.sdk.foundationmodels.openai.OpenAiResponseHandler.buildExceptionAndThrow;
5-
import static com.sap.ai.sdk.foundationmodels.openai.OpenAiResponseHandler.parseErrorAndThrow;
64

5+
import com.sap.ai.sdk.core.commons.ClientResponseHandler;
6+
import com.sap.ai.sdk.foundationmodels.openai.model.OpenAiError;
77
import com.sap.ai.sdk.foundationmodels.openai.model.StreamedDelta;
88
import java.io.IOException;
99
import java.util.stream.Stream;
@@ -17,6 +17,12 @@
1717
class OpenAiStreamingHandler<D extends StreamedDelta> {
1818

1919
@Nonnull private final Class<D> deltaType;
20+
private static final ClientResponseHandler<OpenAiError, OpenAiClientException> HANDLER =
21+
new ClientResponseHandler<>(OpenAiError.class, OpenAiError.class, OpenAiClientException::new);
22+
23+
static {
24+
HANDLER.JACKSON = JACKSON;
25+
}
2026

2127
/**
2228
* @param response The response to process
@@ -27,7 +33,7 @@ class OpenAiStreamingHandler<D extends StreamedDelta> {
2733
Stream<D> handleResponse(@Nonnull final ClassicHttpResponse response)
2834
throws OpenAiClientException {
2935
if (response.getCode() >= 300) {
30-
buildExceptionAndThrow(response);
36+
HANDLER.buildExceptionAndThrow(response);
3137
}
3238
return IterableStreamConverter.lines(response.getEntity())
3339
// half of the lines are empty newlines, the last line is "data: [DONE]"
@@ -36,7 +42,7 @@ Stream<D> handleResponse(@Nonnull final ClassicHttpResponse response)
3642
line -> {
3743
if (!line.startsWith("data: ")) {
3844
final String msg = "Failed to parse response from OpenAI model";
39-
parseErrorAndThrow(line, new OpenAiClientException(msg));
45+
HANDLER.parseErrorAndThrow(line, new OpenAiClientException(msg));
4046
}
4147
})
4248
.map(

0 commit comments

Comments
 (0)