Skip to content

Commit 0c38d4e

Browse files
Better
1 parent e71e91d commit 0c38d4e

File tree

3 files changed

+39
-15
lines changed

3 files changed

+39
-15
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ public ChatMessage createChatMessage() {
5656
if (toolCalls() != null) {
5757
return AssistantChatMessage.create().role(ASSISTANT).toolCalls(toolCalls);
5858
}
59-
return Message.super.createChatMessage();
59+
return AssistantChatMessage.create().role(ASSISTANT).content(content);
6060
}
6161
}

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

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

3+
import static com.sap.ai.sdk.orchestration.model.UserChatMessage.RoleEnum.USER;
4+
import static com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem.TypeEnum.IMAGE_URL;
5+
import static com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem.TypeEnum.TEXT;
6+
37
import com.google.common.annotations.Beta;
48
import com.sap.ai.sdk.orchestration.model.ChatMessage;
5-
import com.sap.ai.sdk.orchestration.model.ChatMessageContent;
6-
import com.sap.ai.sdk.orchestration.model.ImageContent;
79
import com.sap.ai.sdk.orchestration.model.ImageContentUrl;
8-
import com.sap.ai.sdk.orchestration.model.MultiChatMessage;
9-
import com.sap.ai.sdk.orchestration.model.SingleChatMessage;
10-
import com.sap.ai.sdk.orchestration.model.TextContent;
10+
import com.sap.ai.sdk.orchestration.model.UserChatMessage;
11+
import com.sap.ai.sdk.orchestration.model.UserChatMessageContent;
12+
import com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem;
1113
import java.util.LinkedList;
1214
import java.util.List;
1315
import javax.annotation.Nonnull;
@@ -67,21 +69,18 @@ static SystemMessage system(@Nonnull final String message) {
6769
*/
6870
@Nonnull
6971
default ChatMessage createChatMessage() {
70-
final var itemList = this.content().items();
71-
if (itemList.size() == 1 && itemList.get(0) instanceof TextItem textItem) {
72-
return SingleChatMessage.create().role(role()).content(textItem.text());
73-
}
74-
final var contentList = new LinkedList<ChatMessageContent>();
75-
for (final ContentItem item : itemList) {
72+
final var contentList = new LinkedList<UserChatMessageContentItem>();
73+
74+
for (final ContentItem item : this.content().items()) {
7675
if (item instanceof TextItem textItem) {
77-
contentList.add(TextContent.create().type(TextContent.TypeEnum.TEXT).text(textItem.text()));
76+
contentList.add(UserChatMessageContentItem.create().type(TEXT).text(textItem.text()));
7877
} else if (item instanceof ImageItem imageItem) {
7978
final var detail = imageItem.detailLevel().toString();
8079
final var img = ImageContentUrl.create().url(imageItem.imageUrl()).detail(detail);
81-
contentList.add(ImageContent.create().type(ImageContent.TypeEnum.IMAGE_URL).imageUrl(img));
80+
contentList.add(UserChatMessageContentItem.create().type(IMAGE_URL).imageUrl(img));
8281
}
8382
}
84-
return MultiChatMessage.create().role(role()).content(contentList);
83+
return UserChatMessage.create().content(UserChatMessageContent.create(contentList)).role(USER);
8584
}
8685

8786
/**

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

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

3+
import static com.sap.ai.sdk.orchestration.model.UserChatMessage.RoleEnum.USER;
4+
import static com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem.TypeEnum.IMAGE_URL;
5+
import static com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem.TypeEnum.TEXT;
6+
37
import com.google.common.annotations.Beta;
8+
import com.sap.ai.sdk.orchestration.model.ChatMessage;
9+
import com.sap.ai.sdk.orchestration.model.ImageContentUrl;
10+
import com.sap.ai.sdk.orchestration.model.UserChatMessage;
11+
import com.sap.ai.sdk.orchestration.model.UserChatMessageContent;
12+
import com.sap.ai.sdk.orchestration.model.UserChatMessageContentItem;
413
import java.util.LinkedList;
514
import java.util.List;
615
import javax.annotation.Nonnull;
@@ -78,4 +87,20 @@ public UserMessage withImage(@Nonnull final String imageUrl) {
7887
contentItems.add(new ImageItem(imageUrl));
7988
return new UserMessage(new MessageContent(contentItems));
8089
}
90+
91+
@Nonnull
92+
public ChatMessage createChatMessage() {
93+
final var contentList = new LinkedList<UserChatMessageContentItem>();
94+
95+
for (final ContentItem item : this.content().items()) {
96+
if (item instanceof TextItem textItem) {
97+
contentList.add(UserChatMessageContentItem.create().type(TEXT).text(textItem.text()));
98+
} else if (item instanceof ImageItem imageItem) {
99+
final var detail = imageItem.detailLevel().toString();
100+
final var img = ImageContentUrl.create().url(imageItem.imageUrl()).detail(detail);
101+
contentList.add(UserChatMessageContentItem.create().type(IMAGE_URL).imageUrl(img));
102+
}
103+
}
104+
return UserChatMessage.create().content(UserChatMessageContent.create(contentList)).role(USER);
105+
}
81106
}

0 commit comments

Comments
 (0)