Skip to content

Commit 4899f36

Browse files
committed
Simplify logic
1 parent a099ee0 commit 4899f36

File tree

2 files changed

+35
-36
lines changed

2 files changed

+35
-36
lines changed

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

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import javax.annotation.Nonnull;
1111
import javax.annotation.Nullable;
1212

13+
import static java.util.stream.Collectors.toList;
14+
1315
/**
1416
* Represents the content of a chat message.
1517
*
@@ -49,19 +51,20 @@ public static MessageContent image(@Nonnull final String imageUrl) {
4951
/**
5052
* Creates a new message content containing one or more {@link TextItem}s with the given texts.
5153
*
52-
* @param firstInput the first text of the message
53-
* @param moreInputs additional texts of the message
54+
* @param message the first text of the message
55+
* @param additionalMessages additional texts of the message
5456
* @return the new message content
5557
*/
5658
@Nonnull
5759
public static MessageContent text(
58-
@Nonnull final String firstInput, @Nullable final String... moreInputs) {
59-
return new MessageContent(
60-
Stream.concat(
61-
Stream.of(firstInput),
62-
moreInputs == null ? Stream.empty() : Arrays.stream(moreInputs))
63-
.map(text -> (ContentItem) new TextItem(text))
64-
.toList());
60+
@Nonnull final String message, @Nullable final String... additionalMessages) {
61+
var messagesStream =
62+
(additionalMessages != null)
63+
? Stream.concat(Stream.of(message), Stream.of(additionalMessages))
64+
: Stream.of(message);
65+
var contentList =
66+
messagesStream.map(text -> (ContentItem) new TextItem(text)).toList();
67+
return new MessageContent(contentList);
6568
}
6669

6770
/**

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

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

33
import com.google.common.annotations.Beta;
4+
5+
import java.util.LinkedList;
46
import java.util.List;
57
import java.util.stream.Stream;
68
import javax.annotation.Nonnull;
79
import javax.annotation.Nullable;
810
import lombok.Getter;
911
import lombok.Value;
1012
import lombok.experimental.Accessors;
13+
import lombok.experimental.Tolerate;
1114

1215
/** Represents a chat message as 'user' to the orchestration service. */
1316
@Value
@@ -28,32 +31,29 @@ public class UserMessage implements Message {
2831
* @param message the first message.
2932
* @param additionalMessages the additional messages.
3033
*/
34+
@Tolerate
3135
public UserMessage(@Nonnull final String message, @Nullable final String... additionalMessages) {
32-
content = MessageContent.text(message, additionalMessages);
33-
}
34-
35-
/**
36-
* Creates a new user message with the given message content.
37-
*
38-
* @param messageContent the message content.
39-
*/
40-
public UserMessage(@Nonnull final MessageContent messageContent) {
41-
content = messageContent;
36+
this(MessageContent.text(message, additionalMessages));
4237
}
4338

4439
/**
4540
* Add text to the message.
4641
*
47-
* @param messages the text to add.
42+
* @param message the text to add
43+
* @param additionalMessages additional text to add
4844
* @return the new message.
4945
*/
5046
@Nonnull
51-
public UserMessage andText(@Nonnull final String... messages) {
52-
return new UserMessage(
53-
new MessageContent(
54-
Stream.concat(
55-
content.contentItemList().stream(), Stream.of(messages).map(TextItem::new))
56-
.toList()));
47+
public UserMessage andText(
48+
@Nonnull final String message, @Nullable final String... additionalMessages) {
49+
var messagesStream =
50+
(additionalMessages != null)
51+
? Stream.concat(Stream.of(message), Stream.of(additionalMessages))
52+
: Stream.of(message);
53+
var contentList =
54+
Stream.concat(content.contentItemList().stream(), messagesStream.map(TextItem::new))
55+
.toList();
56+
return new UserMessage(new MessageContent(contentList));
5757
}
5858

5959
/**
@@ -66,12 +66,9 @@ public UserMessage andText(@Nonnull final String... messages) {
6666
@Nonnull
6767
public UserMessage andImage(
6868
@Nonnull final String imageUrl, @Nonnull final ImageItem.DetailLevel detailLevel) {
69-
return new UserMessage(
70-
new MessageContent(
71-
Stream.concat(
72-
content.contentItemList().stream(),
73-
Stream.of(new ImageItem(imageUrl, detailLevel)))
74-
.toList()));
69+
final var contentItems = new LinkedList<>(content.contentItemList());
70+
contentItems.add(new ImageItem(imageUrl, detailLevel));
71+
return new UserMessage(new MessageContent(contentItems));
7572
}
7673

7774
/**
@@ -82,10 +79,9 @@ public UserMessage andImage(
8279
*/
8380
@Nonnull
8481
public UserMessage andImage(@Nonnull final String imageUrl) {
85-
return new UserMessage(
86-
new MessageContent(
87-
Stream.concat(content.contentItemList().stream(), Stream.of(new ImageItem(imageUrl)))
88-
.toList()));
82+
final var contentItems = new LinkedList<>(content.contentItemList());
83+
contentItems.add(new ImageItem(imageUrl));
84+
return new UserMessage(new MessageContent(contentItems));
8985
}
9086

9187
/**

0 commit comments

Comments
 (0)