Skip to content

Commit 0547ce6

Browse files
committed
low-level chatCompletion returns low-level response and change OpenAiChatCompletionResponse access
1 parent 7fef719 commit 0547ce6

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

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

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

33
import static com.sap.ai.sdk.foundationmodels.openai.model2.CreateChatCompletionResponseChoicesInner.FinishReasonEnum.CONTENT_FILTER;
4-
import static lombok.AccessLevel.PROTECTED;
4+
import static lombok.AccessLevel.PACKAGE;
55

66
import com.sap.ai.sdk.foundationmodels.openai.model2.CompletionUsage;
77
import com.sap.ai.sdk.foundationmodels.openai.model2.CreateChatCompletionResponse;
@@ -13,7 +13,7 @@
1313

1414
/** Represents the output of an OpenAI chat completion. */
1515
@Data
16-
@RequiredArgsConstructor(access = PROTECTED)
16+
@RequiredArgsConstructor(access = PACKAGE)
1717
public class OpenAiChatCompletionResponse {
1818
/** The original response from the OpenAI API. */
1919
@Nonnull final CreateChatCompletionResponse originalResponse;

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ public OpenAiChatCompletionResponse chatCompletion(@Nonnull final String prompt)
148148
? new OpenAiChatCompletionRequest(systemPrompt, userPrompt)
149149
: new OpenAiChatCompletionRequest(userPrompt);
150150

151-
return chatCompletion(request.toCreateChatCompletionRequest());
151+
return new OpenAiChatCompletionResponse(
152+
chatCompletion(request.toCreateChatCompletionRequest()));
152153
}
153154

154155
private static void throwOnContentFilter(@Nonnull final OpenAiChatCompletionDelta delta) {
@@ -159,31 +160,31 @@ private static void throwOnContentFilter(@Nonnull final OpenAiChatCompletionDelt
159160
}
160161

161162
/**
162-
* Generate a completion for the given low-level request object.
163+
* Generate a completion for the given conversation and request parameters.
163164
*
164165
* @param request the completion request.
165166
* @return the completion output
166167
* @throws OpenAiClientException if the request fails
167168
*/
168169
@Nonnull
169170
public OpenAiChatCompletionResponse chatCompletion(
170-
@Nonnull final CreateChatCompletionRequest request) throws OpenAiClientException {
171+
@Nonnull final OpenAiChatCompletionRequest request) throws OpenAiClientException {
172+
warnIfUnsupportedUsage();
171173
return new OpenAiChatCompletionResponse(
172-
execute("/chat/completions", request, CreateChatCompletionResponse.class));
174+
chatCompletion(request.toCreateChatCompletionRequest()));
173175
}
174176

175177
/**
176-
* Generate a completion for the given conversation and request parameters.
178+
* Generate a completion for the given low-level request object.
177179
*
178180
* @param request the completion request.
179181
* @return the completion output
180182
* @throws OpenAiClientException if the request fails
181183
*/
182184
@Nonnull
183-
public OpenAiChatCompletionResponse chatCompletion(
184-
@Nonnull final OpenAiChatCompletionRequest request) throws OpenAiClientException {
185-
warnIfUnsupportedUsage();
186-
return chatCompletion(request.toCreateChatCompletionRequest());
185+
public CreateChatCompletionResponse chatCompletion(
186+
@Nonnull final CreateChatCompletionRequest request) throws OpenAiClientException {
187+
return execute("/chat/completions", request, CreateChatCompletionResponse.class);
187188
}
188189

189190
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Object chatCompletionImage(
123123
if ("json".equals(format)) {
124124
return response;
125125
}
126-
return response.getContent();
126+
return response.getChoices().get(0).getMessage();
127127
}
128128

129129
/**

sample-code/spring-app/src/main/java/com/sap/ai/sdk/app/services/OpenAiService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.sap.ai.sdk.foundationmodels.openai.model2.ChatCompletionTool;
2525
import com.sap.ai.sdk.foundationmodels.openai.model2.ChatCompletionToolChoiceOption;
2626
import com.sap.ai.sdk.foundationmodels.openai.model2.CreateChatCompletionRequest;
27+
import com.sap.ai.sdk.foundationmodels.openai.model2.CreateChatCompletionResponse;
2728
import com.sap.ai.sdk.foundationmodels.openai.model2.EmbeddingsCreate200Response;
2829
import com.sap.ai.sdk.foundationmodels.openai.model2.EmbeddingsCreateRequest;
2930
import com.sap.ai.sdk.foundationmodels.openai.model2.EmbeddingsCreateRequestInput;
@@ -97,7 +98,7 @@ public Stream<String> streamChatCompletion(@Nonnull final String message) {
9798
* @return the assistant message response
9899
*/
99100
@Nonnull
100-
public OpenAiChatCompletionResponse chatCompletionImage(@Nonnull final String linkToImage) {
101+
public CreateChatCompletionResponse chatCompletionImage(@Nonnull final String linkToImage) {
101102
final var partText =
102103
new ChatCompletionRequestMessageContentPartText()
103104
.type(TEXT)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ void chatCompletionImage() {
3939
service.chatCompletionImage(
4040
"https://upload.wikimedia.org/wikipedia/commons/thumb/5/59/SAP_2011_logo.svg/440px-SAP_2011_logo.svg.png");
4141

42-
final var message = completion.getChoice().getMessage();
42+
final var message = completion.getChoices().get(0).getMessage();
4343
assertThat(message.getRole()).isEqualTo(ASSISTANT);
4444
assertThat(message.getContent()).isNotEmpty();
4545
}

0 commit comments

Comments
 (0)