Skip to content

Commit 38f3fd4

Browse files
committed
Prepare draft
1 parent 75afed1 commit 38f3fd4

File tree

8 files changed

+8
-62
lines changed

8 files changed

+8
-62
lines changed

orchestration/src/main/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformer.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ static TemplatingModuleConfig toTemplateModuleConfig(
5050
*/
5151
val messages = template instanceof Template t ? t.getTemplate() : List.<ChatMessagesInner>of();
5252
val messagesWithPrompt = new ArrayList<>(messages);
53-
// TODO: Here createChatMessage is used to convert Message to ChatMessage
5453
messagesWithPrompt.addAll(
5554
prompt.getMessages().stream().map(Message::createChatMessage).toList());
5655
if (messagesWithPrompt.isEmpty()) {

orchestration/src/main/java/com/sap/ai/sdk/orchestration/Message.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,6 @@ default ChatMessagesInner createChatMessage() {
8989
}
9090
}
9191

92-
// TODO: ask in PR:
93-
// Is there a better way to distribute the logic of the `add...` methods between the Message
94-
// interface and its implementing classes?
9592
static Message addTextMessages(
9693
@Nullable MessageContent oldContent, @Nonnull String role, @Nonnull String... messages) {
9794
if (oldContent == null && messages.length == 1) {

orchestration/src/main/java/com/sap/ai/sdk/orchestration/MessageContent.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22

33
public sealed interface MessageContent permits MessageContentSingle, MessageContentMulti {
44

5-
// TODO: Ask in PR: This is to turn the message content into a string.
6-
// Is there a more elegant way/place to do this? Also, I put a semicolon between multiple
7-
// messages. Is that okay? Or just a space?
85
static String toString(MessageContent content) {
96
if (content instanceof MessageContentSingle mCSingle) {
107
return mCSingle.content();

orchestration/src/main/java/com/sap/ai/sdk/orchestration/MessageContentMulti.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ public record MessageContentMulti(List<MultiMessageContent> multiContentList)
1111
implements MessageContent {
1212
public MessageContentMulti {}
1313

14-
// TODO: Note in PR:
15-
// I use MultiChatMessageContent... here since using List<MultiChatMessageContent> results in a
16-
// compilation error (constructors have same erasure). Is there a more elegant way?
1714
public MessageContentMulti(MultiChatMessageContent... multiChatContents) {
1815
this(convertIntoMultiMessageList(multiChatContents));
1916
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sap.ai.sdk.orchestration;
22

3-
public sealed interface MultiMessageContent permits MultiMessageTextContent, MultiMessageImageContent{
3+
public sealed interface MultiMessageContent
4+
permits MultiMessageTextContent, MultiMessageImageContent {
45
public String type();
56
}

orchestration/src/main/java/com/sap/ai/sdk/orchestration/MultiMessageImageContent.java

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

3-
public record MultiMessageImageContent(String imageUrl, DetailLevel detailLevel) implements MultiMessageContent {
3+
public record MultiMessageImageContent(String imageUrl, DetailLevel detailLevel)
4+
implements MultiMessageContent {
45
private static final String type = "image_url";
56

67
public String type() {
@@ -21,4 +22,3 @@ public static DetailLevel fromString(String str) {
2122
}
2223
}
2324
}
24-

orchestration/src/main/java/com/sap/ai/sdk/orchestration/UserMessage.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,12 @@ public class UserMessage implements Message {
1616
/** The role of the assistant. */
1717
@Nonnull String role = "user";
1818

19-
// TODO: mention in PR:
20-
// Deleted non-null annotation from content to allow for dynamic creation using a no-args
21-
// constructor.
2219
/** The content of the message. */
2320
MessageContent content;
2421

2522
@Nonnull
2623
@Override
2724
public String content() {
28-
// TODO: Ask in PR:
29-
// Maybe we want this to be called "contentAsString()" and have an actual getter instead?
30-
// Right now, this version avoids a breaking change.
3125
return MessageContent.toString(content);
3226
}
3327

@@ -37,11 +31,6 @@ public MessageContent getContent() {
3731
return content != null ? content : new MessageContentSingle("");
3832
}
3933

40-
// TODO: mention in PR
41-
// I added these constructors for backwards compatibility and convenience.
42-
// To enable dynamic message building, I added the addTextMessages and addImage methods.
43-
// Instead, we could use a builder pattern, but I did not know how to make that work without
44-
// breaking changes to the constructors.
4534
public UserMessage(String singleMessage) {
4635
content = new MessageContentSingle(singleMessage);
4736
}
@@ -51,55 +40,19 @@ public UserMessage(MessageContent messageContent) {
5140
}
5241

5342
public UserMessage(List<MultiChatMessageContent> multiChatMessageContentList) {
54-
// List<MultiMessageContent> newContentList = new java.util.ArrayList<>(List.of());
55-
// for (var chatMessageContent : multiChatMessageContentList ) {
56-
// if (chatMessageContent instanceof TextContent textContent) {
57-
// newContentList.add(new MultiMessageTextContent(textContent.getText()));
58-
// } else if (chatMessageContent instanceof ImageContent imageContent) {
59-
// var imageUrl = imageContent.getImageUrl();
60-
// newContentList.add(new MultiMessageImageContent(
61-
// imageUrl.getUrl(),
62-
// MultiMessageImageContent.DetailLevel.fromString(imageUrl.getDetail())));
63-
// } else {
64-
// throw new NotImplementedException("Unknown subtype of MultiChatMessageContent: " +
65-
// chatMessageContent.getClass());
66-
// }
67-
// }
68-
// content = new MessageContentMulti(newContentList);
6943
content =
7044
new MessageContentMulti(
7145
multiChatMessageContentList.toArray(MultiChatMessageContent[]::new));
7246
}
7347

7448
@Nonnull
7549
public UserMessage addTextMessages(@Nonnull String... messages) {
76-
// if (content == null && messages.length == 1) {
77-
// // this.content will be of type MessageContentSingle only here
78-
// return new UserMessage(messages[0]);
79-
// }
80-
// var multiContentList = new ArrayList<MultiMessageContent>();
81-
// if (content instanceof MessageContentSingle mCSingle) {
82-
// multiContentList.add(new MultiMessageTextContent(mCSingle.content()));
83-
// } else {
84-
// multiContentList.addAll(((MessageContentMulti) content).multiContentList());
85-
// }
86-
//
87-
// multiContentList.addAll((Arrays.stream(messages).map(MultiMessageTextContent::new)).toList());
88-
// return new UserMessage(new MessageContentMulti(multiContentList));
8950
return ((UserMessage) Message.addTextMessages(content, role, messages));
9051
}
9152

9253
@Nonnull
9354
public UserMessage addImage(
9455
@Nonnull String imageUrl, MultiMessageImageContent.DetailLevel detailLevel) {
95-
// var multiContentList = new ArrayList<MultiMessageContent>();
96-
// if (content instanceof MessageContentSingle mCSingle) {
97-
// multiContentList.add(new MultiMessageTextContent(mCSingle.content()));
98-
// } else {
99-
// multiContentList.addAll(((MessageContentMulti) content).multiContentList());
100-
// }
101-
// multiContentList.add(new MultiMessageImageContent(imageUrl, detailLevel));
102-
// return new UserMessage(new MessageContentMulti(multiContentList));
10356
return ((UserMessage) Message.addImage(content, role, imageUrl, detailLevel));
10457
}
10558
}

orchestration/src/test/java/com/sap/ai/sdk/orchestration/OrchestrationUnitTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -825,7 +825,9 @@ void testOrchestrationImageSupport() {
825825
}
826826
assertThat(strBuilder.toString())
827827
.isEqualTo(
828-
"[user] Can you solve this captcha? Please help me prove my humanity!; https://sample.sap.com/image\n"
829-
+ "[assistant] Of course! Just let me put on my human glasses... Oh wait, I left them in the matrix\n");
828+
"""
829+
[user] Can you solve this captcha? Please help me prove my humanity!; https://sample.sap.com/image
830+
[assistant] Of course! Just let me put on my human glasses... Oh wait, I left them in the matrix
831+
""");
830832
}
831833
}

0 commit comments

Comments
 (0)