Skip to content

Commit 1af362a

Browse files
committed
Creation of the ete test as well as fixing the empty tools array bug.
1 parent 48ba842 commit 1af362a

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public class OpenAiAssistantMessage implements OpenAiMessage {
7272
ChatCompletionRequestAssistantMessage createChatCompletionRequestMessage() {
7373
final var message =
7474
new ChatCompletionRequestAssistantMessage()
75-
.role(ChatCompletionRequestAssistantMessage.RoleEnum.fromValue(role()));
75+
.role(ChatCompletionRequestAssistantMessage.RoleEnum.fromValue(role()))
76+
.toolCalls(null);
7677

7778
final var items = content().items();
7879
if (!items.isEmpty() && items.get(0) instanceof OpenAiTextItem textItem) {

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
import com.fasterxml.jackson.databind.ObjectMapper;
1212
import com.fasterxml.jackson.module.jsonSchema.JsonSchemaGenerator;
1313
import com.sap.ai.sdk.core.AiCoreService;
14+
import com.sap.ai.sdk.foundationmodels.openai.OpenAiChatCompletionRequest;
15+
import com.sap.ai.sdk.foundationmodels.openai.OpenAiChatCompletionResponse;
1416
import com.sap.ai.sdk.foundationmodels.openai.OpenAiClient;
17+
import com.sap.ai.sdk.foundationmodels.openai.OpenAiMessage;
1518
import com.sap.ai.sdk.foundationmodels.openai.model.OpenAiChatCompletionDelta;
1619
import com.sap.ai.sdk.foundationmodels.openai.model.OpenAiChatCompletionFunction;
1720
import com.sap.ai.sdk.foundationmodels.openai.model.OpenAiChatCompletionOutput;
@@ -27,6 +30,7 @@
2730
import java.util.stream.Stream;
2831
import javax.annotation.Nonnull;
2932
import lombok.extern.slf4j.Slf4j;
33+
import lombok.val;
3034
import org.springframework.stereotype.Service;
3135

3236
/** Service class for OpenAI service */
@@ -46,6 +50,28 @@ public OpenAiChatCompletionOutput chatCompletion(@Nonnull final String prompt) {
4650
return OpenAiClient.forModel(GPT_4O_MINI).chatCompletion(prompt);
4751
}
4852

53+
/**
54+
* Chat request to OpenAI
55+
*
56+
* @param previousMessage The request to send to the assistant
57+
* @return the assistant message response
58+
*/
59+
@Nonnull
60+
public OpenAiChatCompletionResponse messagesHistory(@Nonnull final String previousMessage) {
61+
val messagesList = new ArrayList<OpenAiMessage>();
62+
messagesList.add(OpenAiMessage.user(previousMessage));
63+
64+
final OpenAiChatCompletionResponse result =
65+
OpenAiClient.forModel(GPT_4O_MINI)
66+
.chatCompletion(new OpenAiChatCompletionRequest(messagesList));
67+
68+
messagesList.add(result.getMessage());
69+
messagesList.add(OpenAiMessage.user("What is the typical food there?"));
70+
71+
return OpenAiClient.forModel(GPT_4O_MINI)
72+
.chatCompletion(new OpenAiChatCompletionRequest(messagesList));
73+
}
74+
4975
/**
5076
* Asynchronous stream of an OpenAI chat request
5177
*

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ void chatCompletion() {
3131
assertThat(message.getContent()).isNotEmpty();
3232
}
3333

34+
@Test
35+
void testMessagesHistory() {
36+
assertThat(service.messagesHistory("What is the capital of France?").getContent()).isNotEmpty();
37+
}
38+
3439
@Test
3540
void chatCompletionImage() {
3641
final var completion =

0 commit comments

Comments
 (0)