@@ -63,24 +63,40 @@ public AssistantMessage(@Nonnull final List<MessageToolCall> toolCalls) {
6363 this .toolCalls = toolCalls ;
6464 }
6565
66+ /**
67+ * Creates a new assistant message with the given message and tool calls.
68+ *
69+ * @param singleMessage the message content.
70+ * @param toolCalls list of tool call objects
71+ * @since 1.11.0
72+ */
73+ public AssistantMessage (
74+ @ Nonnull final String singleMessage , @ Nullable final List <MessageToolCall > toolCalls ) {
75+ this .content = new MessageContent (List .of (new TextItem (singleMessage )));
76+ this .toolCalls = toolCalls ;
77+ }
78+
6679 @ Nonnull
6780 @ Override
6881 public ChatMessage createChatMessage () {
82+ var assistantChatMessage = AssistantChatMessage .create ().role (ASSISTANT );
83+
6984 if (toolCalls != null ) {
70- return AssistantChatMessage . create (). role ( ASSISTANT ). toolCalls (toolCalls );
85+ assistantChatMessage . setToolCalls (toolCalls );
7186 }
87+
88+ ChatMessageContent text ;
7289 if (content .items ().size () == 1 && content .items ().get (0 ) instanceof TextItem textItem ) {
73- return AssistantChatMessage .create ()
74- .role (ASSISTANT )
75- .content (ChatMessageContent .create (textItem .text ()));
90+ text = ChatMessageContent .create (textItem .text ());
91+ } else {
92+ val texts =
93+ content .items ().stream ()
94+ .filter (item -> item instanceof TextItem )
95+ .map (item -> (TextItem ) item )
96+ .map (item -> TextContent .create ().type (TextContent .TypeEnum .TEXT ).text (item .text ()))
97+ .toList ();
98+ text = ChatMessageContent .create (texts );
7699 }
77- val texts =
78- content .items ().stream ()
79- .filter (item -> item instanceof TextItem )
80- .map (item -> (TextItem ) item )
81- .map (item -> TextContent .create ().type (TextContent .TypeEnum .TEXT ).text (item .text ()))
82- .toList ();
83-
84- return AssistantChatMessage .create ().role (ASSISTANT ).content (ChatMessageContent .create (texts ));
100+ return assistantChatMessage .content (text );
85101 }
86102}
0 commit comments