Skip to content

Commit ec95eeb

Browse files
ilayaperumalgmarkpollack
authored andcommitted
Revert "Add default ChatOptions to Prompt"
This reverts commit 4eeeb83. Revert "Make ImageOptions non-null when constructing ImagePrompt" This reverts commit 0c0787b. Need to review more the impact of making these options not null. Signed-off-by: Ilayaperumal Gopinathan <ilayaperumal.gopinathan@broadcom.com>
1 parent af0303f commit ec95eeb

File tree

4 files changed

+26
-20
lines changed

4 files changed

+26
-20
lines changed

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiRetryTests.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springframework.ai.chat.prompt.Prompt;
3535
import org.springframework.ai.document.MetadataMode;
3636
import org.springframework.ai.image.ImageMessage;
37+
import org.springframework.ai.image.ImageOptionsBuilder;
3738
import org.springframework.ai.image.ImagePrompt;
3839
import org.springframework.ai.openai.OpenAiAudioTranscriptionModel;
3940
import org.springframework.ai.openai.OpenAiAudioTranscriptionOptions;
@@ -250,7 +251,8 @@ public void openAiImageTransientError() {
250251
.willThrow(new TransientAiException("Transient Error 2"))
251252
.willReturn(ResponseEntity.of(Optional.of(expectedResponse)));
252253

253-
var result = this.imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message"))));
254+
var result = this.imageModel
255+
.call(new ImagePrompt(List.of(new ImageMessage("Image Message")), ImageOptionsBuilder.builder().build()));
254256

255257
assertThat(result).isNotNull();
256258
assertThat(result.getResult().getOutput().getUrl()).isEqualTo("url678");
@@ -262,8 +264,8 @@ public void openAiImageTransientError() {
262264
public void openAiImageNonTransientError() {
263265
given(this.openAiImageApi.createImage(isA(OpenAiImageRequest.class)))
264266
.willThrow(new RuntimeException("Transient Error 1"));
265-
assertThrows(RuntimeException.class,
266-
() -> this.imageModel.call(new ImagePrompt(List.of(new ImageMessage("Image Message")))));
267+
assertThrows(RuntimeException.class, () -> this.imageModel
268+
.call(new ImagePrompt(List.of(new ImageMessage("Image Message")), ImageOptionsBuilder.builder().build())));
267269
}
268270

269271
private static class TestRetryListener implements RetryListener {

spring-ai-client-chat/src/test/java/org/springframework/ai/chat/client/DefaultChatClientTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,7 @@ void whenPromptWithMessagesThenReturn() {
110110
assertThat(spec.getMessages()).hasSize(2);
111111
assertThat(spec.getMessages().get(0).getText()).isEqualTo("instructions");
112112
assertThat(spec.getMessages().get(1).getText()).isEqualTo("my question");
113-
assertThat(spec.getChatOptions()).isNotNull();
114-
assertThat(spec.getChatOptions()).isInstanceOf(ChatOptions.class);
113+
assertThat(spec.getChatOptions()).isNull();
115114
}
116115

117116
@Test

spring-ai-model/src/main/java/org/springframework/ai/chat/prompt/Prompt.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

@@ -232,6 +236,7 @@ public Builder messages(List<Message> messages) {
232236
return this;
233237
}
234238

239+
@Deprecated
235240
public Builder addMessage(Message message) {
236241
if (this.messages == null) {
237242
this.messages = new ArrayList<>();

spring-ai-model/src/main/java/org/springframework/ai/image/ImagePrompt.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ public class ImagePrompt implements ModelRequest<List<ImageMessage>> {
2929
private ImageOptions imageModelOptions;
3030

3131
public ImagePrompt(List<ImageMessage> messages) {
32-
this(messages, ImageOptionsBuilder.builder().build());
32+
this.messages = messages;
33+
}
34+
35+
public ImagePrompt(List<ImageMessage> messages, ImageOptions imageModelOptions) {
36+
this.messages = messages;
37+
this.imageModelOptions = imageModelOptions;
3338
}
3439

3540
public ImagePrompt(ImageMessage imageMessage, ImageOptions imageOptions) {
@@ -44,11 +49,6 @@ public ImagePrompt(String instructions) {
4449
this(new ImageMessage(instructions), ImageOptionsBuilder.builder().build());
4550
}
4651

47-
public ImagePrompt(List<ImageMessage> messages, ImageOptions imageModelOptions) {
48-
this.messages = messages;
49-
this.imageModelOptions = imageModelOptions != null ? imageModelOptions : ImageOptionsBuilder.builder().build();
50-
}
51-
5252
@Override
5353
public List<ImageMessage> getInstructions() {
5454
return this.messages;

0 commit comments

Comments
 (0)