@@ -47,7 +47,8 @@ public class Prompt implements ModelRequest<List<Message>> {
4747
4848 private final List <Message > messages ;
4949
50- private final ChatOptions chatOptions ;
50+ @ Nullable
51+ private ChatOptions chatOptions ;
5152
5253 public Prompt (String contents ) {
5354 this (new UserMessage (contents ));
@@ -58,26 +59,26 @@ public Prompt(Message message) {
5859 }
5960
6061 public Prompt (List <Message > messages ) {
61- this (messages , ChatOptions . builder (). build () );
62+ this (messages , null );
6263 }
6364
6465 public Prompt (Message ... messages ) {
65- this (Arrays .asList (messages ), ChatOptions . builder (). build () );
66+ this (Arrays .asList (messages ), null );
6667 }
6768
68- public Prompt (String contents , ChatOptions chatOptions ) {
69+ public Prompt (String contents , @ Nullable ChatOptions chatOptions ) {
6970 this (new UserMessage (contents ), chatOptions );
7071 }
7172
72- public Prompt (Message message , ChatOptions chatOptions ) {
73+ public Prompt (Message message , @ Nullable ChatOptions chatOptions ) {
7374 this (Collections .singletonList (message ), chatOptions );
7475 }
7576
76- public Prompt (List <Message > messages , ChatOptions chatOptions ) {
77+ public Prompt (List <Message > messages , @ Nullable ChatOptions chatOptions ) {
7778 Assert .notNull (messages , "messages cannot be null" );
7879 Assert .noNullElements (messages , "messages cannot contain null elements" );
7980 this .messages = messages ;
80- this .chatOptions = ( chatOptions != null ) ? chatOptions : ChatOptions . builder (). build () ;
81+ this .chatOptions = chatOptions ;
8182 }
8283
8384 public String getContents () {
@@ -89,6 +90,7 @@ public String getContents() {
8990 }
9091
9192 @ Override
93+ @ Nullable
9294 public ChatOptions getOptions () {
9395 return this .chatOptions ;
9496 }
@@ -134,7 +136,7 @@ public int hashCode() {
134136 }
135137
136138 public Prompt copy () {
137- return new Prompt (instructionsCopy (), this .chatOptions .copy ());
139+ return new Prompt (instructionsCopy (), null == this . chatOptions ? null : this .chatOptions .copy ());
138140 }
139141
140142 private List <Message > instructionsCopy () {
@@ -196,7 +198,9 @@ public Prompt augmentUserMessage(String newUserText) {
196198
197199 public Builder mutate () {
198200 Builder builder = new Builder ().messages (instructionsCopy ());
199- builder .chatOptions (this .chatOptions .copy ());
201+ if (this .chatOptions != null ) {
202+ builder .chatOptions (this .chatOptions .copy ());
203+ }
200204 return builder ;
201205 }
202206
@@ -210,7 +214,7 @@ public static class Builder {
210214 private String content ;
211215
212216 @ Nullable
213- private List <Message > messages ;
217+ private List <Message > messages = new ArrayList <>() ;
214218
215219 @ Nullable
216220 private ChatOptions chatOptions ;
0 commit comments