Skip to content

Commit 8439fb0

Browse files
authored
Merge branch 'main' into poc/mcp
2 parents 3e213d3 + bcc4a49 commit 8439fb0

File tree

6 files changed

+37
-8
lines changed

6 files changed

+37
-8
lines changed

docs/release_notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@
2424

2525
### 🐛 Fixed Issues
2626

27-
-
27+
- OpenAi: Fix AssistantMessage Bug by now being able to send Assistant Messages using our API Client.

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) {

pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,27 +60,27 @@
6060
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
6161
<project.build.outputTimestamp>2025-04-03T13:23:00Z</project.build.outputTimestamp>
6262
<cloud-sdk.version>5.20.0</cloud-sdk.version>
63-
<junit-jupiter.version>5.13.3</junit-jupiter.version>
63+
<junit-jupiter.version>5.13.4</junit-jupiter.version>
6464
<wiremock.version>3.13.1</wiremock.version>
6565
<assertj-core.version>3.27.3</assertj-core.version>
6666
<slf4j.version>2.0.17</slf4j.version>
6767
<checkstyle.version>10.26.1</checkstyle.version>
6868
<system-stubs.version>2.1.3</system-stubs.version>
6969
<surefire.version>3.5.3</surefire.version>
70-
<springframework.version>6.2.8</springframework.version>
70+
<springframework.version>6.2.9</springframework.version>
7171
<spring-ai.version>1.0.0</spring-ai.version>
72-
<reactor-core.version>3.6.12</reactor-core.version>
72+
<reactor-core.version>3.7.8</reactor-core.version>
7373
<dotenv-java.version>3.2.0</dotenv-java.version>
7474
<mockito.version>5.18.0</mockito.version>
7575
<javaparser.version>3.27.0</javaparser.version>
7676
<jsonschema-generator.version>4.38.0</jsonschema-generator.version>
7777
<jackson.version>2.19.2</jackson.version>
7878
<!-- conflicts resolution -->
79-
<micrometer.version>1.14.2</micrometer.version>
79+
<micrometer.version>1.15.2</micrometer.version>
8080
<json.version>20250517</json.version>
8181
<snakeyaml.version>2.4</snakeyaml.version>
8282
<!-- Formatting -->
83-
<spotless.version>2.46.0</spotless.version>
83+
<spotless.version>2.46.1</spotless.version>
8484
<spotless.skip>false</spotless.skip>
8585
<!-- Quality assurance -->
8686
<enforcer.skip>false</enforcer.skip>

sample-code/spring-app/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
</developers>
3434
<properties>
3535
<project.rootdir>${project.basedir}/../../</project.rootdir>
36-
<spring-boot.version>3.5.0</spring-boot.version>
36+
<spring-boot.version>3.5.4</spring-boot.version>
3737
<logback.version>1.5.18</logback.version>
3838
<cf-logging.version>3.8.5</cf-logging.version>
3939
<apache-tomcat-embed.version>11.0.9</apache-tomcat-embed.version>

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.stream.Stream;
2020
import javax.annotation.Nonnull;
2121
import lombok.extern.slf4j.Slf4j;
22+
import lombok.val;
2223
import org.springframework.stereotype.Service;
2324

2425
/** Service class for OpenAI service using latest convenience api */
@@ -37,6 +38,28 @@ public OpenAiChatCompletionResponse chatCompletion(@Nonnull final String prompt)
3738
.chatCompletion(new OpenAiChatCompletionRequest(prompt));
3839
}
3940

41+
/**
42+
* Chat requests to OpenAI and updating the messages history
43+
*
44+
* @param previousMessage The request to send to the assistant
45+
* @return the assistant message response
46+
*/
47+
@Nonnull
48+
public OpenAiChatCompletionResponse messagesHistory(@Nonnull final String previousMessage) {
49+
val messagesList = new ArrayList<OpenAiMessage>();
50+
messagesList.add(OpenAiMessage.user(previousMessage));
51+
52+
final OpenAiChatCompletionResponse result =
53+
OpenAiClient.forModel(GPT_4O_MINI)
54+
.chatCompletion(new OpenAiChatCompletionRequest(messagesList));
55+
56+
messagesList.add(result.getMessage());
57+
messagesList.add(OpenAiMessage.user("What is the typical food there?"));
58+
59+
return OpenAiClient.forModel(GPT_4O_MINI)
60+
.chatCompletion(new OpenAiChatCompletionRequest(messagesList));
61+
}
62+
4063
/**
4164
* Asynchronous stream of an OpenAI chat request
4265
*

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ void chatCompletion() {
3333
assertThat(completion.getContent()).isNotEmpty();
3434
}
3535

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

0 commit comments

Comments
 (0)