@@ -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}
0 commit comments