Skip to content

Commit f33bfad

Browse files
committed
Move NewOpenAiService to test
- Use Old OpenAiService - Adapt tests
1 parent abd7acb commit f33bfad

File tree

4 files changed

+15
-16
lines changed

4 files changed

+15
-16
lines changed

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.fasterxml.jackson.annotation.JsonAutoDetect;
44
import com.fasterxml.jackson.annotation.PropertyAccessor;
55
import com.fasterxml.jackson.databind.ObjectMapper;
6-
import com.sap.ai.sdk.app.services.NewOpenAiService;
7-
import com.sap.ai.sdk.foundationmodels.openai.generated.model.CompletionUsage;
6+
import com.sap.ai.sdk.app.services.OpenAiService;
7+
import com.sap.ai.sdk.foundationmodels.openai.model.OpenAiUsage;
88
import com.sap.cloud.sdk.cloudplatform.thread.ThreadContextExecutors;
99
import java.io.IOException;
1010
import java.util.Arrays;
@@ -26,7 +26,7 @@
2626
@RestController
2727
@SuppressWarnings("unused")
2828
public class OpenAiController {
29-
@Autowired private NewOpenAiService service;
29+
@Autowired private OpenAiService service;
3030
private static final ObjectMapper MAPPER =
3131
new ObjectMapper().setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
3232

@@ -48,19 +48,19 @@ ResponseEntity<ResponseBodyEmitter> streamChatCompletionDeltas() {
4848
final var message = "Can you give me the first 100 numbers of the Fibonacci sequence?";
4949
final var stream = service.streamChatCompletionDeltas(message);
5050
final var emitter = new ResponseBodyEmitter();
51+
final var totalUsage = new AtomicReference<OpenAiUsage>();
5152
final Runnable consumeStream =
5253
() -> {
53-
final var totalOutput = new AtomicReference<CompletionUsage>();
54-
// try-with-resources ensures the stream is closed
5554
try (stream) {
5655
stream.forEach(
5756
delta -> {
58-
final var usage = delta.getCompletionUsage(MAPPER);
59-
totalOutput.compareAndExchange(null, usage);
57+
// Instead of getCompletionUsage(MAPPER), we now use getUsage()
58+
final var usage = delta.getUsage();
59+
totalUsage.compareAndExchange(null, usage);
6060
send(emitter, delta.getDeltaContent());
6161
});
6262
} finally {
63-
send(emitter, "\n\n-----Total Output-----\n\n" + totalOutput);
63+
send(emitter, "\n\n-----Total Usage-----\n\n" + totalUsage.get());
6464
emitter.complete();
6565
}
6666
};

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,19 @@ public OpenAiChatCompletionOutput chatCompletionImage(@Nonnull final String link
8888
/**
8989
* Chat request to OpenAI with a tool.
9090
*
91-
* @param prompt The prompt to send to the assistant
91+
* @param months The number of months to be inferred in the tool
9292
* @return the assistant message response
9393
*/
9494
@Nonnull
95-
public OpenAiChatCompletionOutput chatCompletionTools(@Nonnull final String prompt) {
95+
public OpenAiChatCompletionOutput chatCompletionTools(final int months) {
9696
final var question =
97-
"A pair of rabbits is placed in a field. Each month, every pair produces one new pair, starting from the second month. How many rabbits will there be after 12 months?";
97+
"A pair of rabbits is placed in a field. Each month, every pair produces one new pair, starting from the second month. How many rabbits will there be after %s months?"
98+
.formatted(months);
9899
final var par = Map.of("type", "object", "properties", Map.of("N", Map.of("type", "integer")));
99100
final var function =
100101
new OpenAiChatCompletionFunction()
101102
.setName("fibonacci")
102-
.setDescription(prompt)
103+
.setDescription("Calculate the Fibonacci number for given sequence index.")
103104
.setParameters(par);
104105
final var tool = new OpenAiChatCompletionTool().setType(FUNCTION).setFunction(function);
105106
final var request =

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ void streamChatCompletion() {
7575

7676
@Test
7777
void chatCompletionTools() {
78-
final var completion =
79-
service.chatCompletionTools("Calculate the Fibonacci number for given sequence index.");
78+
final var completion = service.chatCompletionTools(12);
8079

8180
final var message = completion.getChoices().get(0).getMessage();
8281
assertThat(message.getRole()).isEqualTo("assistant");

sample-code/spring-app/src/main/java/com/sap/ai/sdk/app/services/NewOpenAiService.java renamed to sample-code/spring-app/src/test/java/com/sap/ai/sdk/app/services/NewOpenAiService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,7 @@ public OpenAiChatCompletionResponse chatCompletionTools(final int months) {
140140
"A pair of rabbits is placed in a field. Each month, every pair produces one new pair, starting from the second month. How many rabbits will there be after %s months?"
141141
.formatted(months))
142142
.withTools(List.of(tool))
143-
.withToolChoice(toolChoice)
144-
.withLogprobs(true);
143+
.withToolChoice(toolChoice);
145144

146145
return OpenAiClient.forModel(GPT_35_TURBO).chatCompletion(request);
147146
}

0 commit comments

Comments
 (0)